今天給大家分享的是python入門第一課,python基本語法。
下面進入正題
一、注釋
大家都知道,計算機語言都是英文的,這對我們國人并不是很友好,(沒辦法,這電腦不是中國人發(fā)明的...),給你一百行代碼看(全是英文),也許你得一詞一句的翻譯;相比之下,如果代碼后面跟著中文,那看起來就很直觀,理解起來也很方便。所以,就需要用到"#"來加以注釋
注釋,就是用來對代碼進行說明的;注釋是給開發(fā)人員(給我們)看的,解釋器會忽略注釋。
注釋的分類
單行注釋:
python里使用 # 來對代碼進行單行注釋,單行注釋不允許換行
多行注釋:
使用三個單引號(‘’‘ ’‘’)或者三個雙引號(“”“ ”“”)來包裹,表示多行注釋。多行注釋可以換行
python里提供了一個快捷鍵ctrl+/,蘋果是command+/,可以快速的注釋一行代碼
二、語句
一條有效代碼就是一個語句
- 一般情況下,一條語句占一行
- 一條語句結(jié)束不需要分號(如果多條語句要在一行顯示,語句之間必須用分號隔開)
- 如果一條語句很長,需要多行顯示的時候,在換行的時候需要用 \ 連接
三、縮進
python是通過縮進和冒號來產(chǎn)生代碼塊的,在沒有塊語法的時候不能隨便在代碼中添加縮進
python中,縮進一般指的是4個空格
四、標(biāo)識符和關(guān)鍵字
(一)標(biāo)識符
什么是標(biāo)識符?
計算機編程語言中,標(biāo)識符是用戶編程時使用的名字,用于給變量、常量、函數(shù)、語句塊等命名,以建立起名稱與使用之間的關(guān)系。
1、python中標(biāo)識符的要求:
1)由字母、數(shù)字或者下劃線 _ 組成
2)不能以數(shù)字開頭
注意: python3.x中標(biāo)識中可以出現(xiàn)中文,但是實際開發(fā)的時候不能這么做
合法的標(biāo)識符: L40, 40, a_b10, abc12, _
不合法:40L, abc+123, abc.123
2、標(biāo)識符命名要做到顧名思義
3、遵守一定的命名規(guī)范
駝峰命名法,又分為大駝峰命名法和小駝峰命名法。
小駝峰式命名法: 第一個單詞以小寫字母開始;第二個單詞的首字母大寫,例如:myName、aDog
大駝峰式命名法: 每一個單字的首字母都采用大寫字母,例如:FirstName、LastName.
(二)關(guān)鍵字
關(guān)鍵字的概念
一些具有特殊功能的標(biāo)識符,這就是所謂的關(guān)鍵字。 關(guān)鍵字,已經(jīng)被python官方使用了,所以不允許開發(fā)者自己定義和關(guān)鍵字相同名字的標(biāo)識符。
五、變量及數(shù)據(jù)類型
一、變量的定義
對于重復(fù)使用,并且經(jīng)常需要修改的數(shù)據(jù),可以定義為變量,來提高編程效率。
定義變量的語法為: 變量名 = 變量值。(這里的 = 作用是賦值。),定義變量后可以直接使用變量名來訪問變量值。
所謂變量名,可以理解為箱子,當(dāng)需要使用變量值,就把對應(yīng)的箱子拿來。
變量即是可以變化的量,可以隨時進行修改。
程序就是用來處理數(shù)據(jù)的,而變量就是用來存儲數(shù)據(jù)的。
二、常用的數(shù)據(jù)
1. 數(shù)字數(shù)據(jù)
用來表示大小的數(shù)據(jù)才是數(shù)字數(shù)據(jù),數(shù)字數(shù)據(jù)在程序中表示的時候直接寫
例如:789,100,13.78,-789,+780
注意:手機號碼這類型的,可不是數(shù)字數(shù)據(jù)
2.文本數(shù)據(jù)
用文字信息描述的數(shù)據(jù)就是文本數(shù)據(jù),文本數(shù)據(jù)在程序中表示的時候需要放在單引號或者雙引號中
例如:'今天夜色很好' , ''適合刺猹''
三、變量的類型
在 Python 編程里為了應(yīng)對不同的業(yè)務(wù)需求,也把數(shù)據(jù)分為不同的類型。
常見的數(shù)據(jù)類型,如下圖所示:

四、查看數(shù)據(jù)類型
在python中,只要定義了一個變量,而且它有數(shù)據(jù),那么它的類型就已經(jīng)確定了,不需要咱們開發(fā)者主動的去說明它的類型,系統(tǒng)會自動辨別。也就是說在使用的時候 "變量沒有類型,數(shù)據(jù)才有類型"。

如果臨時想要查看一個變量存儲的數(shù)據(jù)類型,可以使用 type(變量的名字),來查看變量存儲的數(shù)據(jù)類型。

六、輸出和輸入
輸出,簡單來說,就是將程序的運行結(jié)果顯示出來。
1.輸出函數(shù) - print
用法一:print(數(shù)據(jù)) - 在控制臺打印指定數(shù)據(jù)(打印結(jié)束后會自動換行)
print('hello world!')
print(True)
print("你好!")
用法二:print(數(shù)據(jù)1, 數(shù)據(jù)2, 數(shù)據(jù)3, ...) - 在控制臺的一行打印多個數(shù)據(jù),數(shù)據(jù)之間用空格隔開,所有數(shù)據(jù)打印結(jié)束后換行
print('你好', 100, False)
用法三:print(數(shù)據(jù)1, 數(shù)據(jù)2, ..., end=文本數(shù)據(jù)) - 在控制臺的一行打印多個數(shù)據(jù),數(shù)據(jù)之間用空格隔開,所有數(shù)據(jù)打印結(jié)束后打印指定的文本數(shù)據(jù)(不會換行)
print('hello world!', end=' ')
用法四:print(數(shù)據(jù)1, 數(shù)據(jù)2, 數(shù)據(jù)3,..., sep=文本數(shù)據(jù))
print(10, 20, 30, 40, sep='加上', end='等于')
print(120)
2. 輸入函數(shù) - input
用法: 變量 = input(輸入提示信息) - 用變量獲取輸入提示信息后輸入的內(nèi)容(輸入的時候按回車結(jié)束)
注意: 不管輸入的內(nèi)容是什么,變量獲取到的數(shù)據(jù)的類型都是字符串
tel = input('請輸入手機號:')
print(tel)
七、進制
數(shù)字在計算機中表現(xiàn)的方式常見的有四種:十進制、二進制、八進制、十六進制
十進制
- 十進制
1)基數(shù):0,1,2,3,4,5,6,7,8,9
2)進位:逢10進1
3)位權(quán):10的n次方 (n從低位到高位從0開始依次增加)
1231 = 110^3 + 210^2 + 310^1 + 110^0
4)程序中的表示方式:直接寫
二進制(0b/0B)
1)基數(shù):0,1
2)進位:逢2進1
例如:
11011 + 10111 = 110010
1011 + 111010 = 1000101
3)位權(quán):2的n次方 (n從低位到高位從0開始依次增加)
101011 = 2^5 + 2^3 + + 2^1 + 2^0 = 32 + 8 + 2 + 1 = 43
4)程序中的表示方式:二進制數(shù)前加 0b或者0B
0b101
0B1010011
0b102 # 錯誤寫法
八進制(0o/0O)
1)基數(shù):0,1,2,3,4,5,6,7
2)進位:逢8進1
"""
76 + 45 = 143
"""
3)位權(quán):8的n次方 (n從低位到高位從0開始依次增加)
123 = 18^2 + 28^1 + 3*8^0 = 64 + 16 + 3 = 83
4)程序中的表示方式:八進制數(shù)前加 0o或者0O
0o10
0O27
十六進制(0x/0X)
1)基數(shù):0,1,2,3,4,5,6,7,8,9,a/A,b/B, c/C, d/D, e/E, f/F
2)進位:逢16進1
"""
9 + 6 = F
7 + 9 = 10
"""
3)位權(quán):16的n次方 (n從低位到高位從0開始依次增加)
123 = 16^2 + 216^1 + 316^0 == 256 + 32 + 3 = 291
4)程序中的表示方式:十六進制數(shù)前加 0x或者0X
0x9afdab
0x8AabF1
注意:十進制數(shù)能做的事情其他的進制數(shù)都可以做
print(291 + 1)
print(0x123 + 1)
八、不同進制相互轉(zhuǎn)換
1. 其他進制轉(zhuǎn)十進制
手動轉(zhuǎn)換: 每一位上的數(shù)乘以位權(quán)再求和
"""
0b1011 -> 2^0 + 2^1 + 2^3 = 1 + 2 + 8 = 11
0o12 -> 28^0 + 18^1 = 10
0xaf -> 1516^0 + 1016^1 = 175
"""
使用代碼:直接用print函數(shù)打印
print(0b1011) # 11
print(0o12) # 10
print(0xaf) # 175
2. 十進制轉(zhuǎn)其他進制
手動轉(zhuǎn)換:輾轉(zhuǎn)取余法
"""
100 -> 0b1100100
100 -> 0o144
100 -> 0x64
"""
print(0b1100100, 0o144, 0x64) # 100
3.八進制、十六進制與二進制之間的相互轉(zhuǎn)換
八進制轉(zhuǎn)二進制: 將1位8進制數(shù)轉(zhuǎn)換成3位的二進制
十六進制轉(zhuǎn)二進制: 將1位16進制數(shù)轉(zhuǎn)換成4位的二進制
0o67 -> 0b110 111
0o624 -> 0b110 010 100
0xaf -> 0b1010 1111
0xf21 -> 0b1111 0010 0001
0xa8e4 -> 0b1010 1000 1110 0100
二進制轉(zhuǎn)八進制:將3位的2進制數(shù)轉(zhuǎn)換成1位的8進制
二進制轉(zhuǎn)十六進制:將4位的2進制數(shù)轉(zhuǎn)換成1位的16進制
0b011 010 111 011 -> 0o3273
0b0110 1011 1011 -> 0x6bb
4. 代碼轉(zhuǎn)換
1.bin(數(shù)字) -> 將其他數(shù)字轉(zhuǎn)換成二進制
2.oct(數(shù)字) -> 將其他數(shù)字轉(zhuǎn)換成八進制
3.hex(數(shù)字) -> 將其他數(shù)字轉(zhuǎn)換成16進制
print(bin(0o67))
print(hex(100))
九、原碼、反碼和補碼
計算機存儲數(shù)據(jù)的時候存的是數(shù)字的補碼
位(bit)
字節(jié)(byte): 1字節(jié) == 8位
1kb = 1024字節(jié)
1Mb = 1024kb
1G = 1024Mb
1T = 1024G
程序員編程能操作的內(nèi)存的最小單位是字節(jié):malloc(字節(jié))
正數(shù)的原碼、反碼和補碼一樣
1. 原碼
原碼 = 符號位+真值
符號位:最高位表示符號位(0表示正,1表示負)
真值:數(shù)字的絕對值的二進制
10的原碼:00001010
-256的原碼:10000001 00000000
56的原碼:00111000
print(0b10101011)
2.負數(shù)的反碼 - 原碼符號位不變其余位取反
-10的反碼:11110101
-3的反碼:10000011(原) -> 11111100(反)
-2的反碼:10000010(原) -> 11111101(反)
3.負數(shù)的補碼 - 反碼加1
計算機在存儲和操作數(shù)據(jù)的時候使用的是原碼,查看結(jié)果的時候用原碼
-2的補碼:11111110
-3的補碼:11111101
結(jié)尾 (原碼、反碼和補碼多練自然就熟了)
計算機在對負數(shù)進行加法運算的時候結(jié)果不對,需要通過補碼進行運算(計算機沒有減法器只有加法器)
3 - 2 = 1
00000011(原) + 10000010(原) = 10000101(原碼) -> -5(錯)
00000011(補) + 11111110(補) = 000000001(補) -> 000000001(原) -> 1(對)
今天就分享到這里,謝謝觀看。
