python常量類
㈠ 0x18是合法的python整型常量嗎
0x18是合法的python整型常量。
Python 數字數據類型用於存儲數值。
數字類型是不允許改變的,這就意味著如果改變數字數據類型得值,將重新分配內存空間。
以下實例在變數賦值時 Number 對象將被創建:
IntOne=1
IntTwo=2
也可以使用del語句刪除一些數字對象的引用。
del IntOne
del IntTwo
當然了,也允許刪除多個:
del IntOne,IntTwo
Python 支持三種不同的數值類型:
整型(Int) - 被稱為是整數,是正或負整數,不帶小數點。Python3 整型是沒有限制大小的。也就是沒有像java一樣限制int類型的大小。
浮點型(float) - 浮點型由整數部分與小數部分組成,浮點型也可以使用科學計數法表示(2.5e2 = 2.5 x 102 = 250)。
復數( (complex)) - 復數由實數部分和虛數部分構成,可以用a + bj,或者complex(a,b)表示, 復數的實部a和虛部b都是浮點型。用表達式表示虛數也是可以的。
Python 數字類型轉換
有時候,我們需要對數據內置的類型進行轉換,數據類型的轉換,你只需要將數據類型作為函數名即可。
int(x) 將x轉換為一個整數。
float(x) 將x轉換到一個浮點數。
complex(x) 將x轉換到一個復數,實數部分為 x,虛數部分為 0。
complex(x, y) 將 x 和 y 轉換到一個復數,實數部分為 x,虛數部分為 y。x 和 y 是數字表達式。
Python 可以使用 ** 操作來進行冪運算:
變數在使用前必須先"定義"(即賦予變數一個值),否則會出現錯誤:
不同類型的數混合運算時會將整數轉換為浮點數(當然指的是不同的數,如果不是數的話就會出現錯誤了)
常用函數:
abs(x) x的絕對值
ceil() 返回數字的上入整數,如math.ceil(4.1) 返回 5
使用 (x>y)-(x
exp(x) 返回e的x次冪(ex),如math.exp(1) 返回2.718281828459045
fabs(x) 返回數字的絕對值,如math.fabs(-10) 返回10.0
floor(x) 返回數字的下舍整數,如math.floor(4.9)返回 4
log(x) 如math.log(math.e)返回1.0,math.log(100,10)返回2.0
log10(x) 返回以10為基數的x的對數,如math.log10(100)返回 2.0
max(x1,x2,,,,) 返回給定參數的最大值,參數可以為序列。
min(x1,x2) 返回給定參數的最小值,參數可以為序列。
mdf(x) 返回x的整數部分與小數部分,兩部分的數值符號與x相同,整數部分以浮點型表示。
pow(x,y) x**y 運算後的值。
round(x,n) 返回浮點數x的四捨五入值,如給出n值,則代表舍入到小數點後的位數。
sqrt(x) 返回數字x的平方根。
隨機數函數
隨機數可以用於數學,游戲,安全等領域中,還經常被嵌入到演算法中,用以提高演算法效率,並提高程序的安全性。
choice(seq) 從序列的元素中隨機挑選一個元素,比如random.choice(range(10)),從0到9中隨機挑選一個整數。
randrange(start,stop,step) 從指定范圍內,按指定基數遞增的集合中獲取一個隨機數,基數預設值為1
random() 隨機生成下一個實數,它在[0,1)范圍內。
seed(x) 改變隨機數生成器的種子seed。如果你不了解其原理,你不必特別去設定, Python會幫你選擇seed。
shuffle(seq) 將序列的所有元素隨機排
unform(x,y) 隨機生成下一個實數,它在[x,y]范圍內。
數學常量:
i,e
㈡ python常量的值可以改變嗎
首先先要理解常量與變數、賦值即定義
常量
1、python常量:內存中用於保存固定值的單元、在程序中、常量的值不能發生改變的
2、python常量命名規范:通常是以大寫字母開頭進行區分-Chy常量 chy變數
3、python常量的賦值:數字 字元串 布爾值 空值
4、舉例:Aa=123、Ab='chy'、Ac=True和False、Ad=' ';
變數
1、python變數:佔用內存中一塊空間、用來存放變數的值(或地址)、存放的值是可以發生改變的
2、python變數命名規范:第1個字元必須是字母或下劃線開始(_)不可用數字開頭 不要用中文開頭
3、第1個字元後邊可以使用字母、數字、下劃線進行組合 chy_0201=[1,2,3]
4、變數的賦值:
變數名=常量
a = 1
print(a)
變數名=其他變數名
a = 1
a = a + 1
print(a)
變數名=表達式
if a = 1:
print('ok')
變數名=函數(返回值)
a = 1
b = 2
c = a + b * 2
print(c)
5、python變數的命名是區分大小寫的、小寫是變數 大寫是常量 chy與Chy是不同的
6、python中已經被使用的關鍵字不能用於聲明變數
7、python中對變數進行賦值時、單引號和雙引號是一樣的 '' ""
8、賦值可以使用任意類型的數據、一個變數的類型不固定、變數值是有固定的類型的
9、查看數據類型使用type(變數名) asd='123' print(type(asd))
10、通過id(變數名)可以查看變數指向的內存地址
另外一般定義為常量就不會去重新賦值,如果要多次賦值,那就用變數。
首先聲明:python沒有真正意義上的常量!
但我們可以通過私有屬性以及property屬性相結合,zhuan自己設置出屬於python的偽常量。
當然,這個常量其實也是可以改的,不過是比較麻煩,平常可以當作一個常量用
#1.先是用私有屬性初始化一個量
class Man(object):
def __init__(self,age):
self.__age=age
#2.然後用property獲取到
@property
def AGE(self):
return self.__age
#3.最後得到常量man.AGE,設置的常量,因property屬性,所以調用不需要括弧
man = Man(300)
print(man.AGE)
#4.現在驗證,輸入以下代碼,結果為"AttributeError: can't set attribute"
man.AGE=33
#5.這就是python簡單的設置偽常量!
希望對你有幫助!謝謝採納!
㈢ python 定義常量類報錯
你的python版本是py3.x吧?啟豎散
raise加個纖蔽括弧,用 raise self.ConstError("Can'悄氏t rebind const(%s)"%name)
㈣ Python其實很簡單 第五章 基本數據類型
編程的目的就是為了處理信息,信息則是由各種不同類型的數據表示的,對數據的進一步處理也會使信息更加豐富和有效。
5.1變數
前面已經提到過「變數」這屬語,下面再進一步解釋一下。
在程序運行時,必須把數據導入計算機的存儲單元中,但存儲單元的命名是用二進制數表示的,晦澀難懂。為了方便起見,可以給存儲單元起上一個通俗易懂的名字,即 變數名 。
變數的生命周期和程序的運行周期是相同的,一個程序運行解釋,所佔用的存儲空間也就隨之釋放,用變數名表示的數據所佔用的這個存儲單元也就空閑了。
變數名的命名規則:
由字母、數字、下劃線構成,必須由字母開頭。
不能包含-、*、?、#、、;、/、、@、%、$、空格等特殊字元。
最好使用有含義的英文單詞或漢語拼音。
最好採用小寫字母。
不能使用保留字(已被Python語言系統本身賦予特定意義的單詞)。Python的保留字如下表所示。
Python保留字列表
Python是區分大小寫的,雖然可以將一個英文單詞通過字母大小寫不同而作為不同變數的變數名,但從程序可讀性的角度看,的確不可取。
Python是一種動態類型的語言,變數的類型由變數的值決定。換而言之,給變數賦何種類型的值,變數就是該值的類型。給變數賦值可以通過賦值號(=)來實現。如:
>>> myvar=100
>>> type(myvar)
>>> myvar='tom'
>>> type(myvar)
在這個例子中,變數myvar首先賦值為100,顯而易見,100是個整數,通過type()這個函數檢測,變數myvar的類型為整數類型(int);接下來變數myvar賦值為『tom』,通過type()這個函數檢測,變數myvar的類型改變為字元串類型(str)。
不僅可以給一個變數賦值為常量,也可以賦值為另一個變數。如:
>>> a=100
>>> b=a
>>> b
100
在這個例子中,「b=a」的實際意義是,變數b和變數a指向同一個存儲單元,既然是同一個存儲單元,變數b和變數a本質上就是完全相同的,這就好比一個人除了本名之外,還有其他的名字,如筆名、昵稱、乳名等等,雖然本質一樣,但是可以在不同場合使用。
5.2關於Python的常量問題
在大多數語言中都有常量這個概念,但是Python卻沒有。其實仔細想想也好像沒有設置常量的必要,只要一個變數的值不發生變化,即不給變數重新賦值,它的值當然不會變化,它便是個常量。
5.3基本數據類型
5.3.1整數型和浮點數
整數型(integer),可以是正整數、負整數和0,可以是十進制、八進制、二進制等。
浮點數(float),由整數部分和小數部分組成,主要用於處理包括小數的數。浮點數也可以用科學計數法表示。
5.3.2 字元串類型
字元串類型是由一系列的字母或者其他符號組成的數據序列,通常用單引號、雙引號或三引號括起來。
用單引號和雙引號括起來的字元串只能放在同一行,用三引號括起來的字元串可以分布在連續多行上。如:
name='我的名字叫王小明'
old="今年6歲"
introce='''我想說: 我是中國娃
愛講普通話
要學習寫標準的漢字'''
print(name)
print(old)
print(introce)
運行結果為:我的名字叫王小明
今年6歲
我想說: 我是中國娃
愛講普通話
要學習寫標準的漢字
不管是哪一種引號形式,括起來的部分是一個整體,包括空格和換行符都屬於字元串的一部分。
為了保證特殊的輸出效果,Python中的字元串支持轉義字元,可使用反斜杠「」對一些特殊字元進行轉義。常用的轉義字元如下:
續行符
換行符
空
水平製表符
」 雙引號
』 單引號
一個反斜杠
f 換頁
其中,續行符(「」)用於當一個字元串在一行寫不下時用續行符進行連接,但通常更多的採用小括弧「()」即可。
如:
第一種方法採用續行符(「」):
>>> str="A thousand wishes, a thousand plans and
a thousand resolutions are better than one action!"
>>> print(str)
A thousand wishes, a thousand plans and a thousand resolutions are better than one action!
第二種方法採用小括弧():
>>> str=("A thousand wishes, a thousand plans and "
"a thousand resolutions are better than one action!")
>>> print(str)
A thousand wishes, a thousand plans and a thousand resolutions are better than one action!
下面舉例說明換行符(「 」)的用法:
>>> str=" 登鸛雀樓 白日依山盡, 黃河入海流。 欲窮千里目, 更上一層樓。 "
>>> print(str)
登鸛雀樓
白日依山盡,
黃河入海流。
欲窮千里目,
更上一層樓。
下面舉例說明使用轉義字元輸出雙引號(「)的方法:
>>> str="王之渙的詩《登鸛雀樓》中這樣寫道:" 白日依山盡,黃河入海流。欲窮千里目,更上一層樓。""
>>> print(str)
王之渙的詩《登鸛雀樓》中這樣寫道:" 白日依山盡,黃河入海流。欲窮千里目,更上一層樓。"
>>>
5.3.3布爾類型
布爾類型用來表示邏輯值,所謂邏輯判斷的結果,不外乎「真」或「假」兩種情況。在Python中「真」用True表示,「假」用False表示。如果布爾類型的變數參與算數運算,則True被當作1,False被當作0。
如:
>>> result=True
>>> print(result)
True
>>> print(result+1)
2
>>> result=False
>>> print(result)
False
>>> print(result+1)
1
5.3.4類型強制轉換
Python是一種弱數據類型語言,可以通過給變數重新賦值的方法改變數據類型。但有時為了強制改變數據類型,就要使用類型轉換函數來改變。
譬如,為了從鍵盤讀入成績的數據,可以用float()函數將input()語句讀入的字元串轉換為浮點數,再賦值給變數score。
>>> score=input("請輸入您的成績:")
請輸入您的成績:96.5 (從鍵盤輸入96.5)
為了計算成績比及格線高了多少分,使用下面的命令,發現出現了錯誤提示如下:
>>> score-60
Traceback (most recent call last):
File " ", line 1, in
score-60
TypeError: unsupported operand type(s) for -: 'str' and 'int'
這是屬於類型錯誤,原因是從鍵盤讀入的成績值(96.5)並非數值類型,不能參與算數運算。用type()函數可以進一步查詢變數score的數據類型。
>>> type(score)
使用float()函數進行強制轉換後,就可以解決上述問題:
>>> score=float(input("請輸入您的成績:"))
請輸入您的成績:96.5
>>> score=float(score)
>>> type(score)
>>> score-60
36.5
下表列舉了一些常用的類型轉換函數:
㈤ Python中所有變數和常量都是有所屬類型的嗎
在 Python 中,數據類型是動態的,這意味著變數的數據類型可以在運行時改變。因此,在 Python 中,不是所有變數和常量都有所屬類型。
Python中的變數不需要事先聲明變數類型,可以直接使用等號進行賦值。
例如:a = 42b = "Hello World"
變數 a 是一個整數類型的變數,變數 b 是一個字元串類型的變數。
常量的概念與變數不同,常量指被程序預定義的值,在 Python 中常常使用常量來代替某些常用的固定值或者比較難計算的值。Python沒飢襲有直接定義常量的關鍵字,可以通過大寫的方式來爛伍兄表示常量。
例如:PI = 3.14
在 Python 中,這個 PI 變數是一個常量,一橘森般情況下值不會發生改變。但事實上,Python並沒有對這個變數做出保護,還是可以通過程序去改變它的值。
總之,在 Python 中,變數和常量是沒有被嚴格區分的,它們都是可以被賦予不同類型的值的。但是一些比較常用的值可以通過定義為常量來表明其意義和作用。
㈥ 在python中怎麼定義常量
通常是在py 函數上面,import下面
大寫字母作為常量名。
比如:
importxxx
WORKER_NUMBER=100
defhehe():
......
㈦ 如何定義和使用Python中常量
一、訪問字典的元素使用dobj.get(key, somethingelse),如果對應key值元素不存在,你將會得到somethingelse值,例如「not found」 不要使用dobj[key],因為如果key對應元素不存在,則會產生KeyError異常,這樣必須使用try...except來封裝 二、名字空間中的屬性可以通過字典__dict__來訪問 __setattr__負責處理屬性賦值,其內進行賦值時要使用self.__dict__[attr] = value以防止遞歸 三、sys.moles是一個字典,它包含了從Python開始運行起,被導入的所有模塊。鍵字就是模塊名,鍵值就是模塊對象。請注意除了你的程序導入的模塊外還有其它模塊。Python在啟動時預先裝入了一些模塊,如果你在一個Python IDE環境下,sys.moles包含了你在IDE中運行的所有程序所導入的所有模塊定義class _const(object): class ConstError(TypeError): pass def __setattr__(self, name, value): if self.__dict__.has_key(name): raise self.ConstError, "Cant rebind const(%s)" % name self.__dict__[name] = value def __delattr__(self, name): if name in self.__dict__: raise self.ConstError, "Cant unbind const(%s)" % name raise NameError, nameimport syssys.moles[__name__] = _const()使用import const const.value = somevalue const.value = newvalue # 產生異常const.ConstError技巧1、使用__setattr__來控制重新綁定 2、sys.moles[name]得到的是模塊對象,通過模塊對象可以訪問其模塊屬性;而Python不會進行嚴格的類型檢測,所以直接將一個 _const類對象加入sys.moles字典,而__name__的值為對應模塊const的名字const,通過 sys.moles[__name__] = _const()用類對象替換模塊對象,將對應的名字空間加以限制,當使用import const時,會發生sys.moles[const] = _const();而訪問const.attrvalue時會發生sys.moles[const].attrvalue,即 _const().attrvalue
㈧ python選擇結構分為哪幾類每一類的語法格式怎麼書寫
分三類:單分支,雙分支,多分支。
輸出
用print()在括弧中加上字元串,就可以向屏幕上輸出指定的文字。比如輸出'hello, world',用代碼實現如下:
>>> print('hello, world')
print()函數也可以接受多個字元串,用逗號「,」隔開,就可以連成一串輸出:
>>> print('The quick brown fox', 'jumps over', 'the lazy dog')
The quick brown fox jumps over the lazy dog
print()會依次列印每個字元串,遇到逗號「,」會輸出一個空格
print()也可以列印整數,或者計算結果:
>>> print(300)
300
>>> print(100 + 200)
300
因此,我們可以把計算100 + 200的結果列印得更漂亮一點:
>>> print('100 + 200 =', 100 + 200)
100 + 200 = 300
輸入
Python提供了一個input(),可以讓用戶輸入字元串,並存放到一個變數里。比如輸入用戶的名字:
>>> name = input()
Michael
當你輸入name = input()並按下回車後,Python互動式命令行就在等待你的輸入了。這時,你可以輸入任意字元,然後按回車後完成輸入。
輸入完成後,不會有任何提示,Python互動式命令行又回到>>>狀態了。那我們剛才輸入的內容到哪去了?答案是存放到name變數里了。可以直接輸入name查看變數內容:
>>> name
'Michael'
結合輸入輸出
name = input()
print('hello,', name)
數據類型
整數
Python可以處理任意大小的整數,當然包括負整數,在程序中的表示方法和數學上的寫法一模一樣,例如:1,100,-8080,0,等等。
計算機由於使用二進制,所以,有時候用十六進製表示整數比較方便,十六進制用0x前綴和0-9,a-f表示,例如:0xff00,0xa5b4c3d2,等等。
浮點數
浮點數也就是小數,之所以稱為浮點數,是因為按照科學記數法表示時,一個浮點數的小數點位置是可變的,比如,1.23x109和12.3x108是完全相等的。浮點數可以用數學寫法,如1.23,3.14,-9.01,等等。但是對於很大或很小的浮點數,就必須用科學計數法表示,把10用e替代,1.23x109就是1.23e9,或者12.3e8,0.000012可以寫成1.2e-5,等等。
整數和浮點數在計算機內部存儲的方式是不同的,整數運算永遠是精確的(除法難道也是精確的?是的!),而浮點數運算則可能會有四捨五入的誤差。
字元串
字元串是以單引號'或雙引號"括起來的任意文本,比如'abc',"xyz"等等。請注意,''或""本身只是一種表示方式,不是字元串的一部分,因此,字元串'abc'只有a,b,c這3個字元。如果'本身也是一個字元,那就可以用""括起來,比如"I'm OK"包含的字元是I,',m,空格,O,K這6個字元。
如果字元串內部既包含'又包含"怎麼辦?可以用轉義字元\來標識,比如:
'I\'m \"OK\"!'
表示的字元串內容是:
I'm "OK"!
轉義字元\可以轉義很多字元,比如\n表示換行,\t表示製表符,字元\本身也要轉義,所以\\表示的字元就是\,可以在Python的互動式命令行用print()列印字元串看看:
>>> print('I\'m ok.')
I'm ok.
>>> print('I\'m learning\nPython.')
I'm learning
Python.
>>> print('\\\n\\')
\
\
如果字元串裡面有很多字元都需要轉義,就需要加很多\,為了簡化,Python還允許用r''表示''內部的字元串默認不轉義,可以自己試試:
>>> print('\\\t\\')
\ \
>>> print(r'\\\t\\')
\\\t\\
如果字元串內部有很多換行,用\n寫在一行里不好閱讀,為了簡化,Python允許用'''...'''的格式表示多行內容,可以自己試試:
>>> print('''line1
... line2
... line3''')
line1
line2
line3
上面是在互動式命令行內輸入,注意在輸入多行內容時,提示符由>>>變為...,提示你可以接著上一行輸入,注意...是提示符,不是代碼的一部分:
┌────────────────────────────────────────────────────────┐
│Command Prompt - python _ □ x │
├────────────────────────────────────────────────────────┤
│>>> print('''line1 │
│... line2 │
│... line3''') │
│line1 │
│line2 │
│line3 │
│ │
│>>> _ │
│ │
│ │
│ │
└────────────────────────────────────────────────────────┘
當輸入完結束符```和括弧)後,執行該語句並列印結果。
如果寫成程序並存為.py文件,就是:
print('''line1
line2
line3''')
多行字元串'''...'''還可以在前面加上r使用
布爾值
布爾值和布爾代數的表示完全一致,一個布爾值只有True、False兩種值,要麼是True,要麼是False,在Python中,可以直接用True、False表示布爾值(請注意大小寫),也可以通過布爾運算計算出來:
>>> True
True
not運算是非運算,它是一個單目運算符,把True變成False,False變成True:
>>> not True
False
空值
空值是Python里一個特殊的值,用None表示。None不能理解為0,因為0是有意義的,而None是一個特殊的空值。
此外,Python還提供了列表、字典等多種數據類型,還允許創建自定義數據類型,我們後面會繼續講到。
變數
變數的概念基本上和初中代數的方程變數是一致的,只是在計算機程序中,變數不僅可以是數字,還可以是任意數據類型。
變數在程序中就是用一個變數名表示了,變數名必須是大小寫英文、數字和_的組合,且不能用數字開頭,比如:
a = 1
變數a是一個整數。
t_007 = 'T007'
變數t_007是一個字元串。
Answer = True
變數Answer是一個布爾值True。
在Python中,等號=是賦值語句,可以把任意數據類型賦值給變數,同一個變數可以反復賦值,而且可以是不同類型的變數
這種變數本身類型不固定的語言稱之為動態語言,與之對應的是靜態語言。靜態語言在定義變數時必須指定變數類型,如果賦值的時候類型不匹配,就會報錯。
最後,理解變數在計算機內存中的表示也非常重要。當我們寫:
a = 'ABC'
時,Python解釋器幹了兩件事情:
在內存中創建了一個'ABC'的字元串;
在內存中創建了一個名為a的變數,並把它指向'ABC'。
也可以把一個變數a賦值給另一個變數b,這個操作實際上是把變數b指向變數a所指向的數據
常量
所謂常量就是不能變的變數,比如常用的數學常數π就是一個常量。在Python中,通常用全部大寫的變數名表示常量:
PI = 3.14159265359
但事實上PI仍然是一個變數,Python根本沒有任何機制保證PI不會被改變,所以,用全部大寫的變數名表示常量只是一個習慣上的用法,如果你一定要改變變數PI的值,也沒人能攔住你。
最後解釋一下整數的除法為什麼也是精確的。在Python中,有兩種除法,一種除法是/:
>>> 10 / 3
3.3333333333333335
/除法計算結果是浮點數,即使是兩個整數恰好整除,結果也是浮點數:
>>> 9 / 3
3.0
還有一種除法是//,稱為地板除,兩個整數的除法仍然是整數:
>>> 10 // 3
3
你沒有看錯,整數的地板除//永遠是整數,即使除不盡。要做精確的除法,使用/就可以。
因為//除法只取結果的整數部分,所以Python還提供一個余數運算,可以得到兩個整數相除的余數:
>>> 10 % 3
1
無論整數做//除法還是取余數,結果永遠是整數,所以,整數運算結果永遠是精確的。
㈨ python中常量類型有哪些
常量定義:不可以被改變的量python中無固定語法,約定俗成的是將變數名全部大寫。例如:
PI=3.141592653BIRTH_OF_SYLAR=1990
Python並未提供如C/C++/Java一樣的const修飾符。
換言之,#python中沒有常量。
python提供了新的方法實現常量:即通過自定義類實現常量。
需要滿足兩個條件:
命名全部為大寫值,被賦值便不可再修改。
例如:
HOST=飗.0.0.1'