day2-python基本語法

今天給大家分享的是python入門第一課,python基本語法。
下面進入正題

一、注釋

大家都知道,計算機語言都是英文的,這對我們國人并不是很友好,(沒辦法,這電腦不是中國人發(fā)明的...),給你一百行代碼看(全是英文),也許你得一詞一句的翻譯;相比之下,如果代碼后面跟著中文,那看起來就很直觀,理解起來也很方便。所以,就需要用到"#"來加以注釋
注釋,就是用來對代碼進行說明的;注釋是給開發(fā)人員(給我們)看的,解釋器會忽略注釋。

注釋的分類

單行注釋:
python里使用 # 來對代碼進行單行注釋,單行注釋不允許換行
多行注釋:
使用三個單引號(‘’‘ ’‘’)或者三個雙引號(“”“ ”“”)來包裹,表示多行注釋。多行注釋可以換行
python里提供了一個快捷鍵ctrl+/,蘋果是command+/,可以快速的注釋一行代碼

二、語句

一條有效代碼就是一個語句

  1. 一般情況下,一條語句占一行
  2. 一條語句結(jié)束不需要分號(如果多條語句要在一行顯示,語句之間必須用分號隔開)
  3. 如果一條語句很長,需要多行顯示的時候,在換行的時候需要用 \ 連接

三、縮進

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ù)類型,如下圖所示:
截屏2020-06-09 下午8.27.17.png

四、查看數(shù)據(jù)類型

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

比如下面的示例里,我們沒法預(yù)測變量 b 的類型,但是 a 的類型可以根據(jù)數(shù)據(jù)來確認。
截屏2020-06-09 下午8.30.55.png

如果臨時想要查看一個變量存儲的數(shù)據(jù)類型,可以使用 type(變量的名字),來查看變量存儲的數(shù)據(jù)類型。
截屏2020-06-09 下午8.36.02.png

六、輸出和輸入

輸出,簡單來說,就是將程序的運行結(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. 十進制
    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(對)

今天就分享到這里,謝謝觀看。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容