第一個Python程序
1.快捷鍵
ctrl + / - 添加或者取消一行注釋
ctrl + s - 保存
ctrl + c - 復制
ctrl + v - 粘貼
ctrl + n - 新建文件
ctrl + f - 搜索
ctrl + r - 搜索+替換
ctrl + z - 撤銷
ctrl + shift + z - 反撤銷
ctrl + a - 全選
shift + 鼠標 - 選中指定范圍
tab - 補全代碼
2.注意事項
程序中涉及到的所有和語法相關的符號,都是在英文輸入法下對應的符號
print,是python內(nèi)置函數(shù)留潦,作用是用來打印括號中的內(nèi)容
單引號是字符串的標志
print('HELLO world')
print('HELLO python')
python基礎語法
1.注釋
注釋是程序中專門用來注釋說明的文字阅签。不會參與程序編譯和執(zhí)行沛硅。對程序的功能沒有任何影響
單行注釋:在說明性文字前加#
使用三個單引號或者三個雙引號括起來馋吗,來設置多行注釋
但是一般使用三個雙引號
2.標識符
標識符就是專門用來命名的莺葫。給變量命名垒棋、函數(shù)命名褐捻、類命名等
要求:
python中的標識符要求是由數(shù)字爬范、字母和下劃線組成父腕,并且數(shù)字不能開頭
注意,在python3.x坦敌,標識符中可以包含非ASCII碼字符(非ASCII碼包含中文侣诵、日語、韓語狱窘、拉丁等)杜顺。
但是,在實際開發(fā)的時候不要用
num = 100
num2 = 100
__ = 100
12abc = 100
你好 = 100
n-m = 100 # SyntaxError: can't assign to operator
3.行與縮進
python中對代碼里面的所有有嚴格要求蘸炸。同一級代碼前面的縮進(空格/tab)的個數(shù)必須一致
行的規(guī)范:要求聲明函數(shù)和類的前后需要有兩個空行
print('hello world') # IndentationError
if 100 > 10:
print('大于')
4.分段(行)顯示
一句代碼很長躬络,需要多行來顯示的時候,可以在需要換行的位置加
注意:加\的時候不能將一個數(shù)據(jù)搭儒,一個變量名給拆開
num = 2837487 + 34398748 + 384798578 +
37847578 + 347895789 + 457279 +
345234757 + 3549087 + 3457078
如果代碼是列表穷当、元祖、字典淹禾、集合的字面量馁菜,可以直接換行,不用加\
list1 = [
12,
23,
4543,
'ahgshgd',
'sjhfjkh'
]
5.一行顯示多條語句
一行顯示一條語句的時候铃岔,后面不用加分號汪疮。但是如果希望在一行顯示多條語句,那么多條語句之間必須加分號
print('aaa');print('bbb')
6.關鍵字(保留字)
python中已經(jīng)定義好的有特殊的功能或者特殊的意義的一些標識符毁习,就是python的關鍵字智嚷。
命名的時候不能使用關鍵字
'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'
import keyword # 導入keyword模塊
print(keyword.kwlist) # 打印python中所有的關鍵字
and = 100 # SyntaxError: invalid syntax
7.print函數(shù)和input函數(shù)
(掌握)
print(內(nèi)容) - 在控制臺中打印內(nèi)容(內(nèi)容必須是python數(shù)據(jù))
print(內(nèi)容1, 內(nèi)容2, ..., 內(nèi)容n) - 在一行打印多個內(nèi)容,在控制臺顯示的時候多個內(nèi)容之間用空格隔開
默認情況下纺且,一個print中的內(nèi)容占一行(以換行結束)盏道。一個print中的多個內(nèi)容用空格隔開
(了解)
print(內(nèi)容,內(nèi)容1,...,內(nèi)容n, end='換行標志')
print(內(nèi)容,內(nèi)容1载碌,...,內(nèi)容n, sep='分割標志')
print('打印1')
print(100)
print('abc', 'bcd', 200)
print('打印1', end='==')
print(100)
print('abc', 'bcd', 200, sep='@')
print('abc', 'bcd', 200, sep='')
input() - 從控制臺輸入一串內(nèi)容猜嘱,以回車結束衅枫。并且將內(nèi)容返回(以字符串的形式返回)
input('提示信息')
注意:程序執(zhí)行到input的時候,程序會停下來泉坐,直到輸入完成為止
print(input('請輸入:'))
python常用語法
python中常用的數(shù)據(jù)類型有:整型为鳄、浮點型、布爾腕让、字符串孤钦、列表、字典纯丸、元祖偏形、集合、函數(shù)等....
1.常見數(shù)據(jù)類型的字面量(常量)
整型: 100, 23, -129 -- 所有的整數(shù)
浮點型: 12.3, 45.0, -0.1123 -- 所有的小數(shù)
布爾: True, False -- 只有兩個值
字符串: 'abc', "ahjs", '348sj', "上的+-" -- 由雙引號或者單引號括起來的內(nèi)容
列表: [12, 'abc', True]
元祖:(23, 89, 'asd')
字典:{'ab': 120, 18:'abc'}
100
12.3
True
'348sj'
[12, 'abc', True]
(23, 89, 'asd')
{'ab': 120, 18:'abc'}
2.數(shù)字相關類型
"""
python中和數(shù)字相關的類型:整型觉鼻、浮點型俊扭、布爾、復數(shù)(虛數(shù))
a.整型(int):整數(shù)對應的類型坠陈,包含了所有的整數(shù)萨惑。python3.x中整數(shù)對應的類型只有一個:int
python2.x中整數(shù)對應的類型有:int和long
python中的整數(shù),除了可以用十進制表示仇矾,還可以用二進制庸蔼、八進制和十六進制進行表示
12
200
-100
a.浮點型(float): 小數(shù)對應的類型,包含了所有小數(shù)贮匕。
支持科學計數(shù)法
12.90
-12.03
2e4 # 20000.0
print(2e4)
print(3e-2)
c.布爾(bool): 只有True和False姐仅, 其中True表示真,False表示假。
True實質(zhì)就是數(shù)字1刻盐,F(xiàn)alse實質(zhì)是數(shù)字0
True和False都是關鍵字
print(True, False)
print(1+True, 1+False)
d.復數(shù)(complex): 所有的虛數(shù)對應的類型
數(shù)字后面加j掏膏,來表示復數(shù)的虛部。實部就是普通數(shù)字
10+1j
20-9j
print((10+1j)+(20-9j))
3.type函數(shù)
type(數(shù)據(jù)) - 獲取數(shù)據(jù)對應的類型
print(type(100))
print(type(10+2j))
4.isinstance函數(shù)
isinstance(數(shù)據(jù),類型) - 判斷指定的數(shù)據(jù)是否是指定的類型敦锌,結果是布爾值
isinstance(100, float) # 判斷100是否是float類型
print(isinstance(100, float)) # False
print(isinstance(100, int)) # True
5.類型的強制轉(zhuǎn)換
類型名(數(shù)據(jù)) - 將指定數(shù)據(jù)轉(zhuǎn)換成指定類型
整型轉(zhuǎn)成浮點型: 在整數(shù)的后面加.0 float()
浮點型轉(zhuǎn)換成整型: 只保留小數(shù)點前面的整數(shù)部分 int()
其他類型轉(zhuǎn)布爾: 0轉(zhuǎn)換成False,其他的轉(zhuǎn)換成True bool()
注意:復數(shù)不能轉(zhuǎn)換成整型和浮點型馒疹,可以轉(zhuǎn)換成布爾類型(不管什么數(shù)據(jù)都可以轉(zhuǎn)換成布爾)
print(float(False))
print(int(False))
print(bool(10+10j))
進制
1.十進制
a.基數(shù):0,1乙墙,2行冰,3,4伶丐,5,6疯特,7哗魂,8,9
23
123
90
89
77677676
b.進位:逢10進1
c.位權:123 = 110^2 + 210^1 + 3*10^0 (10^n)
d.表示: 所有的數(shù)字都是10進制數(shù)(數(shù)字直接寫)
123
10
78
67
2.二進制
a.基數(shù): 0漓雅,1
011011010001001001
111010101
b.進位: 逢2進1
1+0 = 1
0+1 = 1
0+0 = 0
1+1 = 0 -- 進1
110 + 011 = 1001
101+110 = 1011
c.位權: 1101(2) = 12^0 + 02^1 + 12^2 + 12^3 = 13 (2^n)
d.表示: 在二進制數(shù)前加前綴:0b或者0B
0b10101
0B01010
0b2100 # SyntaxError: invalid syntax
3.八進制
"""
a.基數(shù):0录别,1朽色,2,3组题,4葫男,5,6崔列,7
67
12
106465
b.進位:逢8進1
c.位權: 123(8) = 38^0 + 28^1 + 1*8^2 = 83 (8^n)
d.表示:在八進制數(shù)加前綴:0o或者0O
0o12
0O67
4.十六進制
a.基數(shù):0梢褐,1,2赵讯,3盈咳,4,5边翼,6鱼响,7,8组底,9丈积,a(10),b(11)债鸡,c(12)江滨,d(13),e(14)娘锁,f(15)
字母大寫和小寫都可以
123
12a
ff
ef
abc
abc12
b.進位:逢16進1
c.位權: 123(16) = 316^0 + 216^1 + 1*16^2 (16^n)
d.表示: 在十六進制數(shù)的前面加前綴:0x或者0X
0x12a
0Xffee
0X1023
num = 0x1010
print(num)
5.其他進制和十進制之間的轉(zhuǎn)換
a.其他進制轉(zhuǎn)十進制:每一位上的數(shù)*權值牙寞,然后再求和
110(2) = 12^1 + 12^2 = 6(10)
110(8) = 18^1 + 18^2 = 72(10)
110(16) = 116^1 + 116^2 = 272(10)
b.將十進制轉(zhuǎn)換成其他進制
100(10) = 1100100(2)
100(10) = 144(8)
100(10) = 64(16)
79(10) = 1001111(2)
79(10) = 117(8)
79(10) = 4f(16)
6. 二進制和八進制十六進制的相互轉(zhuǎn)換
a.二進制轉(zhuǎn)八進制:每3位的二進制轉(zhuǎn)換成1位的八進制
001100100110010011100(2) = 1446234(8)
八進制轉(zhuǎn)二進制:每1位8進制,轉(zhuǎn)換成3位的二進制
6745(8) = 110 111 100 101(2)
b.二進制轉(zhuǎn)十六進制:每4位的二進制轉(zhuǎn)換成1位的十六進制
0110 0100 1100 1001 1100(2) = 64c9c(16)
十六進制轉(zhuǎn)二進制:每1位16進制莫秆,轉(zhuǎn)換成4位的二進制
6745(16) = 0110 0111 0100 0101(2)
a12(16) = 1010 0001 0010(2)
"""
7.進制轉(zhuǎn)換相應的函數(shù) - 返回值是字符串
bin(數(shù)字) - 將數(shù)字轉(zhuǎn)換成2進制
print(bin(100))
print(bin(0x6745))
print(bin(0o76))
oct(數(shù)字) - 將數(shù)字轉(zhuǎn)換成8進制
print(oct(100))
print(oct(0x1af))
print(oct(0b110001101))
hex(數(shù)字) - 將數(shù)字轉(zhuǎn)換成16進制
print(hex(100))
print(hex(0o67))
print(hex(0b11011101110))
所有進制最后會自動轉(zhuǎn)換成10進制
num = 0xaf
print(num)
print(0b111 + 0b110)
原碼间雀、反碼、補碼
1.計算機數(shù)據(jù)的存儲
計算機能夠直接存儲的是數(shù)字镊屎,并且存的數(shù)字的補碼
2.計算機內(nèi)存大小單位
位(bit)
1字節(jié) = 8位
1KB = 1024字節(jié)
1MB = 1024KB
1GB = 1024MB
1TB = 1024GB
3.原碼:符號位+真值 (用最高位表示符號位惹挟,后面的其他為表示數(shù)字的二進制)
符號位: 0 -> 正, 1 -> 負數(shù)
真值 :數(shù)字對應的二進制值
10(原碼) = 00001010
-10(原碼) = 10001010
4.反碼:
正數(shù)的反碼和原碼一樣。負數(shù)的反碼是符號位不變缝驳,其他位上的數(shù)取反(0變成1连锯,1變成0)
10(反碼) = 00001010
-10(反碼) = 11110101
5.補碼:
正數(shù)的補碼和原碼一樣。負數(shù)的補碼就是反碼加1
10(補碼) = 00001010
-10(補碼) = 11110110
注意:數(shù)據(jù)存儲和運算的時候采用的是補碼用狱≡瞬溃看結果看的是原碼
如果計算機存儲的是原碼:
3:0011
2:0010
3+2 = 0101 = 5
原碼:
3-2 = 3+(-2) = 1101 = -5
3: 0011
-2:1010
補碼:
3(補) = 0011
-2(補) = 1101(反) = 1110(補)
0011(補)+1110(補) = 0001(補) = 0001(原) = 1
2-3
2:0010(原)= 0010(補)
-3:1011(原) = 1100(反)= 1101(補碼)
0010(補)+ 1101(補碼) = 1111(補碼)= 1110(反) = 1001 = -1