一、基礎(chǔ)語法
1. 注釋
注釋是代碼中對代碼進行解釋和說明的文本內(nèi)容歼捏;不會影響程序的功能執(zhí)行
1)單行注釋
在一行文字的開頭加#
快捷鍵:command
+ /
# 這是一條單行注釋
2)多行注釋
將注釋內(nèi)容寫在三個雙引號或者三個雙引號里面(但是一般使用三個雙引號)
"""
多行注釋1
多行注釋2
"""
2. 語句
1)一條語句占一行稿存,語句結(jié)束后不用加分號
num = 10
2)如果一行要顯示多行語句笨篷,語句之間必須用分號隔開
num = 10;str1 = 'abc'
3)如果一條語句很長,需要多行顯示瓣履,可以在語句中加\
然后再換行
??注意:
\
不能破壞數(shù)據(jù)
num2 = 12312321 + 23214124 + 2312312 +\
2312312322222222222 + 2112312
print(num2)
3. 縮進
1)python中一行代碼的開頭不能隨便加縮進(空格或者制表符)
num = 100
# 程序報錯
num2 - 100
num3 = 20
# 程序報錯
num4 = 90
2)python語法要求必須有縮進的位置率翅,必須加縮進
if num > 10:
print(num)
4. 標(biāo)識符
標(biāo)識符是用來命名用的,一般是給變量拂苹、函數(shù)或者類命名
1)標(biāo)識符規(guī)則
所有標(biāo)識符都必須是由字母
安聘、數(shù)字
和下劃線
組成痰洒;數(shù)字
不能開頭
abc = 10
ab12 = 10
ab_1 = 10
_1a = 10
# 程序報錯
23 = 'a'
2)注意
標(biāo)識符中可以出現(xiàn)中文瓢棒、日語、韓語等符號丘喻,但是實際開發(fā)中不建議使用
中文 = 'a'
5. 關(guān)鍵字
關(guān)鍵字就是python中有特殊功能和特殊意義的標(biāo)識符
1)所有關(guān)鍵字
"""
'False', 'None', 'True', 'and', 'as', 'assert',
'break', 'class', 'continue', 'def', 'del', 'elif',
'else', 'except', 'finally', 'for', 'from', 'global',
'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not',
'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield'
"""
2)關(guān)鍵字不能作為標(biāo)識符使用
# 運行報錯
class = 10
6. 常見數(shù)據(jù)類型和數(shù)據(jù)
1)數(shù)字?jǐn)?shù)據(jù)
整型(int) 10,89,-10
浮點型(float) 12.9脯宿,23.0,-12.0泉粉,0.23
2)字符串(str)
用單引號或者雙引號將文本數(shù)據(jù)引起來
city = '重慶市'
3)布爾(bool)
只有True
和False
兩個值
True
代表真/肯定连霉,False
代表假/否定
4)列表(list)、元組(tuple)嗡靡、集合(set)跺撼、字典(dict)、函數(shù)(function)...
5)類型轉(zhuǎn)換
類型名(數(shù)據(jù))--> 將括號中的數(shù)據(jù)轉(zhuǎn)換為指定的類型并返回
# a = 2
a = int(2.333)
# b = 100.0
b = float(100)
7. print和input
1)print函數(shù)
輸出函數(shù)讨彼,在控制臺打印print后面括號中內(nèi)容的結(jié)果
print(100)
print('abc')
print(100, 'abc')
# -------輸出-------
# 100
# abc
# 100 abc
2)input函數(shù)
輸出函數(shù)歉井,獲取從控制臺輸入的內(nèi)容(輸入回車后輸入完成)
注意:
不管從鍵盤上輸入的內(nèi)容是什么,input返回的結(jié)果類型都是字符串類型
value = input('請輸入年齡:')
print("輸入的年齡是:", value)
# -------輸出-------
# 請輸入年齡:12
# 輸入的年齡是: 12
二哈误、進制轉(zhuǎn)換
計算機只能存儲和處理二進制數(shù)據(jù)
int類型
包含所有的整數(shù)哩至,整數(shù)可以表示為十進制、二進制蜜自、八進制和十六進制
1)十進制
a. 基數(shù):0菩貌,1,2重荠,3箭阶,4,5戈鲁,6仇参,7,8荞彼,9
b. 進位:逢10進1 --> 10(10) == 10(10)
c. 位權(quán):123(10) = 100 + 20 + 3 = 1 * 10 ^ 2 + 2 * 10 ^ 1 + 3 * 10 ^ 0
?????x * (10 ^ (n - 1))
d. 表示方式:直接寫即可
e. 轉(zhuǎn)換:直接打印
# 10進制
num = 10
print(num)
# 轉(zhuǎn)10進制 100 100 100
print('轉(zhuǎn)10進制', 0b1100100, 0o144, 0x64)
2)二進制:
a. 基數(shù):0冈敛,1
b. 進位:逢2進1 --> 10(2) == 2(10)
c. 位權(quán):111(2) = 1 * 2 ^ 2 + 1 * 2 ^ 1 + 1 * 2 ^ 0 = 7(10)
?????x * (2 ^ (n - 1))
d. 表示方式:在二進制數(shù)前加前綴0b/0B
e. 轉(zhuǎn)換:bin()
# 2進制
# 2 ^ 3 + 2 ^ 1 + 2 ^ 0 = 8 + 2 + 1 = 11
num = 0b1011
print(num)
# 轉(zhuǎn)2進制 0b11001000 0b101110 0b10101111
print('轉(zhuǎn)2進制', bin(200), bin(0o56), bin(0xaf))
3)八進制:
a. 基數(shù):0,1鸣皂,2抓谴,3暮蹂,4,5癌压,6仰泻,7
b. 進位:逢8進1 --> 10(8) == 8(10)
c. 位權(quán):111(8) = 1 * 8 ^ 2 + 1 * 8 ^ 1 + 1 * 8 ^ 0 = 73(10)
?????x * (8 ^ (n - 1))
d. 表示方式:在八進制數(shù)前加前綴0o/0O
e. 轉(zhuǎn)換:oct()
# 8進制
# 6 * 8 ^ 1 + 7 * 8 ^ 0 = 48 + 7 =55
num = 0o67
print(num)
# 轉(zhuǎn)8進制 0o310 0o67 0o37
print('轉(zhuǎn)8進制', oct(200), oct(0b110111), oct(0x1f))
4)十六進制:
a. 基數(shù):0-9,a-f/A-F:a/A(10),b/B(11),c/C(12),d/D(13),e/E(14),f/F(15)
b. 進位:逢16進1 --> 10(16) == 16(10)
c. 位權(quán):111(16) = 1 * 16 ^ 2 + 1 * 16 ^ 1 + 1 * 16 ^ 0 = 273(10)
????1f(16) = 1 * 16 ^ 1 + 15 * 16 ^ 0 = 31(10)
?????x * (16 ^ (n - 1))
d. 表示方式:在十六進制數(shù)前加前綴0x/0X
e. 轉(zhuǎn)換:hex()
# 16進制
# 2 * 16 ^ 1 + 15 * 16 ^ 0 = 32 + 15 = 47
num = 0x2f
print(num)
# 轉(zhuǎn)16進制 0xc8 0x37 0x64
print('轉(zhuǎn)16進制', hex(200), hex(0b110111), hex(0o144))
三滩届、原碼反碼和補碼
計算機存儲數(shù)據(jù)的時候只能存數(shù)字集侯,而且存的是數(shù)字二進制的補碼
注意:
正數(shù)的原碼、反碼和補碼均相同
計算機存儲單位
位(bit)
1字節(jié)(byte)= 8位
1kb = 1024字節(jié)
1M = 1024kb
1G = 1024M
1T = 1024G
1. 原碼
原碼 = 符號位(0表示正帜消,1表示負(fù))+ 真值(數(shù)字轉(zhuǎn)換成二進制的值)
10 --> 1010(真值)--> 1010
10的原碼: 00000000 00000000 00000000 00001010
-10的原碼:10000000 00000000 00000000 00001010
2. 負(fù)數(shù)的反碼
符號位不變棠枉,其他位取反(0變1,1變0)
10的反碼: 00000000 00000000 00000000 00001010
-10的反碼:11111111 11111111 11111111 11110101
3. 負(fù)數(shù)的補碼
反碼加1
10的補碼: 00000000 00000000 00000000 00001010
-10的補碼:11111111 11111111 11111111 11110110
4. 計算機負(fù)數(shù)采用補碼的原因
計算機沒有減法器泡挺,負(fù)數(shù)采用原碼進行加法運算時結(jié)果不正確辈讶,而采用補碼時計算正確
2 + 3 = 5
2的原碼:00000010
3的原碼:00000011
2 + 3 = 00000010 + 00000011 = 00000101 = 52 + (-3) = -1
2的原碼:00000010
-3的原碼:10000011 -->(反碼)11111100 -->(補碼)11111101
2 + (-3) = 11111111(補碼)--> 10000001(原碼)= -1??正確
使用原碼:
2 + (-3) = 00000010 + 10000011 = 10000101 = -5 ????錯誤
四、運算符
python支持的運算符:數(shù)學(xué)運算符娄猫、比較運算符贱除、邏輯運算符、位運算符媳溺、賦值運算符
1. 數(shù)學(xué)運算符
+(求和), -(求差), *(求積), /(求商), %(求余), //(整除), **(冪運算)
1)+, -, *, /和數(shù)學(xué)中的+, -, *, /的功能一模一樣
print(10 + 20) # 30
print(10 - 20) # -10
print(10 * 20) # 200
print(10 / 20) # 0.5
2)% 求余數(shù)
print(10 % 3) # 求10除以3的余數(shù) 1
a. 判斷一個數(shù)是否能被另一個數(shù)整除
print(True if 21 % 7 == 0 else False) # True
b. 判斷一個數(shù)的奇偶性:讓數(shù)字對2取余月幌,看結(jié)果是0(偶數(shù))還是1(奇數(shù))
print(True if 21 % 2 == 0 else False) # False
c. 獲取一個數(shù)的最后幾位數(shù)
num = 1024
# 取一個數(shù)的個位數(shù) 4
print(num % 10)
# 取一個數(shù)的后兩位數(shù) 24
print(num % 100)
3)// 求商,取商的整數(shù)部分
print(5//2) # 2
print(9.36//3) # 3.0
獲取一個數(shù)的每一位
num = 123
print(num // 100) # 1
print(num // 10 % 10) # 2
# print(num % 100 // 10) # 2
print(num % 10) # 3
4)** 求次方值
x ** y - 求x的y次方
print(2 ** 3) # 8
開平方
print(16 ** 0.5) # 4.0
開立方
print(8 ** (1 / 3)) # 2.0
2. 比較運算符
>(大于), <(小于), >=(大于等于), <=(小于等于), ==(等于), !=(不等于)
所有比較運算符的結(jié)果都為布爾值(True/False)
1)>, <, >=, <=和數(shù)學(xué)中相應(yīng)的比較運算符一樣
print(100 > 10) # True
print(100 < 10) # False
print(100 >= 100) # True
print(100 <= 100) # True
2)==(判斷是否相等)/ !=(判斷是否不相等)
print(100 == 100) # True
print(100 == 20 + 80) # True
print(100 != 100) # False
print(10 != 100) # True
注意:
python中比較大小的時候可以像數(shù)學(xué)一樣連寫表示范圍
x = 20
print(1 <= x <= 100) # True