01.print函數
1.python常用快捷方式:
control + / ------ 單行注釋
control + s ------ 保存
control + b ------ 編譯(編譯執(zhí)行)
control + n ------ 新建文件
control + c ------ 復制
control + v ------ 粘貼
control + a ------ 全選
control + x ------ 剪切
control + z ------ 撤銷
control + y / control + shift + z------ 反撤銷(撤銷前的狀態(tài))
按住control不放,讓鼠標可以同時在多個位置設置光標
control + f ------ 彈出搜索框
2.print函數是python內置函數,作用是在控制臺打印print后面()里面的任何內容
- ()里面的單引號,是字符串的標志,而不是內容
- 在python2.x中,print'hello world'可以不用添加括號
- 在python3.x中,print后面需要括號
- A.B.C版本號。A-->重大修改(不向下兼容) B-->添加新的功能 C--->修復bug
print('hello world!!!!')
結果
hello world!!!!
02.python基礎語法
1.注釋
注釋就是代碼源文件中,用來進行注解說明的文字,不會對代碼的功能產生任何影響。
注意:好的代碼和優(yōu)秀的程序員,需要對代碼通過注釋進行說明。
- 單行注釋:在需要注釋的內容前面加#號
#內容
- 多行注釋:分別可以用三個單引號或三個雙引號對內容注釋如下
'''
內容
'''
"""
內容
"""
補充:編程語言里面涉及到的所有符號,都是指的英文輸入法狀態(tài)下的符號
2.標識符
標識符是用來程序中命名用的。(比如:變量名、類名、函數名)
- 標識符是由字母、數字和下劃線組成,并且數字不能開頭(硬性規(guī)定) --- python3.x中,標識符里可以有中文(但是不推薦使用)
- 不能使關鍵字(保留字)(硬性規(guī)定)
- 大小也敏感(區(qū)分大小寫,aaa、Aaa、AAA和AAa是不一樣的)(硬性規(guī)定)
- 要見名知意(規(guī)范)
- 不推薦使用python中的內置函數、類名去作為標識符(規(guī)范)
3.關鍵字
系統(tǒng)保留的有特殊功能或者特殊意義的一些單詞。這些單詞不能用來給變量\函數\類等命名的
- 可以通過以下代碼查看關鍵字
import keyword
print(keyword.kwlist)
結果:
['False', 'None', 'True', 'and', 'as', 'assert', 'async', 'await', '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']
4.行與縮進
縮進:每一行代碼的位置,與行開頭的位置之間的空格
- 在python中縮進的寫法有嚴格的規(guī)范。同一級的代碼,必須寫同一個縮進下面
- 如果在不該有空格產生的位置出現了多余的空格,程序會報錯(IndentationError)
- 如果在需要縮進的時候沒有縮進也會報錯
關于行的規(guī)范:
函數和類的聲明前后必須要有兩個換行,一般一個功能實現完,實現下一個功能的時候,最好也換行
5.多行語句
- 一條語句在多行顯示。
a.在需要換行的地方加反斜杠,然后再換行
b.字典、列表、集合和元組等 容器類型數據 的字面量,在多行顯示的時候可以直接換行
代碼如下
print('阿達大大大的如\
饑似渴開始') #一條語句多行顯示
print(1,2,3,4,
5,6,7,8,
9,10
)
結果:
阿達大大大的如 饑似渴開始
1 2 3 4 5 6 7 8 9 10
- 多條語句一行顯示
python中,一條語句結束,可以不寫分號;但是如果一行中要寫多行語句,那么每條語句中必須使用分號隔開
代碼如下
print('aaaa');print('bbbb')
結果:
aaaa
bbbb
6.字面量
數據類型對應的具體的值
- 10,100,-12 ---> 整數
- 12.5,3.1415926,-0.13 --->小數(浮點數)
- 12e2,9e-2 --->數字
- 9+10j --->復數
- 'hello world','123',"abcd","!87as" ---->字符串
- Ture,False --->布爾值
- [1,2,'dfdsf','asdasd'] ---->列表
- {'a':1,'b':'123'} --->字典
7.python中的基本數據類型
數字(整型、浮點型、布爾、復數)、字符串(str)、列表(list)、字典(dict)、集合(set)、元組(tuple)、none(代表沒有和空)
- 整型:int (在python2.x有l(wèi)ong)---->整數
- 浮點型:float ---->包含所有小數,和科學計數
- 布爾:bool ---> 值只有Ture和False
- 復數:complex --->值包含所有復數
可以通過type函數查看數據的類型:type(數據)
代碼如下
print(type(10e2))
結果:
<class 'float'>
03.變量
什么是變量:在程序中可以通過變量來存儲數據(容器)
怎么聲明變量:
- 嚴格說,python中的變量是不需要聲明的,可以直接通過賦值符號(=)給變量賦值,就是在聲明變量
- 因為python是動態(tài)語言,在聲明變量的時候,不需要指定變量的類型。并且同一個變量可以賦不同類型的值
格式:變量名 = 值
變量名:標識符,PEP8的命名方式(所有字母小寫,多個單詞之間用下劃線隔開,例如:user_name)
駝峰式命名:第一個單詞首字母小寫,后面每個單詞首字母都大寫(例如:userName)
代碼如下
# 聲明了一個變量age,并且賦值為18
age=18
# 使用變量的時候,就相當于使用變量中存的值
print(age)
student_age=20
print(type(student_age))
# 1.如果重新給一個變量賦值,那么新的值會覆蓋原來的值
# 2.同一個變量可以賦不同類型的值
student_age='abc'
print(student_age,type(student_age))
結果:
18
<class 'int'>
abc <class 'str'>
補充:
- 一個數據有type(類型)、id(數據存儲在計算機中的地址)和value(值)三個屬性
- 變量存儲數據的時候,有兩種情況。第一種情況:存value ---> 數字類型、字符串,第二種:存id --->字典、列表、集合、元組、類的對象等
number=10
print(id(number))
結果:
140725466551616
04.運算符
運算符分為:數學運算符、比較運算符、邏輯運算符、賦值運算符、位運算符(針對二進制的每一位)
1.數學運算符(+、-、、/、%、*、//)
- +:求和
注意:求和操作,+兩邊必須是數字類型。True ---> 1 False ---> 0
print(10+20.66,True+1)
number=100+65
print(number)
結果:
30.66 2
165
- -: 求差
print(100-60.3,False+9)
結果:
39.7 9
- *:求乘積
print(3*3)
結果:
9
- /: 求商
print(6/2)
print(5/2)
結果:
3.0
2.5
- %: 求兩個數相除的余數
print(8%3)
結果:
2
-
:冪運算
xy:求x的y次方
浮點數在計算中存儲的時候,有的時候會有一定的誤差
print(5**2)
print(4.2**3)
結果:
25
74.08800000000001
- //: 整除
求商只取商的整數部分
print(9//2)
結果:
4
- 取一個二位整數的十位數是多少(78)
print(78//10)
結果:
7
- 取2345中的4有以下兩種方法
print(2345%100//10)
print(2345//10%10)
結果:
4
4
2.比較運算符(>、<、==、>=、<=、!=)
比較運算符的結果全是布爾:True、False
1.>
x>y:判斷x是否大于y,如果是結果是True,否者是False
resulut=10>20
print(resulut,100>20)
結果:
False True
2.<
print(10<20)
結果:
True
3.==
x==y:如果x和y相等,結果是True,否則是False
number=12.5
number2=12
print(number2==number)
結果:
False
4.>=、<=
10>=5 #True
10>=10 #True
5.!=
x!=y:如果x和y不相等,結果是True,否則是False
6.在python中,可以像數學中一樣,連續(xù)判斷
number=15
resulut=10<number<20 # 判斷number是否在10到20之間
print(resulut)
結果:
True
3.邏輯運算符
與(and)、或(or)、非(not)
邏輯運算符的運算數據是布爾值,結果也是布爾值
- 布爾1 and 布爾2:兩個都為True結果才為True,只要有一個是False結果就是False。--->并且
-需要兩個或者多個條件同時滿足,就使用邏輯與(and)
- 布爾1 or 布爾2 :只要有一個是True結果就是True,兩個都是False結果才是False。--->或者
需要兩個或者多個條件中滿足一個就可以,就使用邏輯或(or)
- not 布爾1 :如果是True結果是False,如果是False結果是True。--->取反
需要不滿足某個條件的時候為True
寫一個條件,判斷一個人的年齡是否滿足青年的條件(年齡大于18并且小于28,而且還不能是20歲)
代碼如下
age=30
print(age>18 and age<28 and age!=20)
結果:
False
平均成績大于90分,或者操評分大于100,并且英語成績還不能小于80分
代碼如下
score=85
=101
english=81
print(score>90 or score2>100 and not englis<80)
結果:
True
成績不低于60分
score=70
print(score>=60)
print(not score<60)
結果:
True
True
4.賦值運算符(=、+=、-=、=、/=、%=、*=、//=)
賦值運算符的作用:將賦值符號右邊的表達式的值賦給左邊的變量
表達式:有一個具體結果的語句,例如:10,'abc',10+20,30>10.5等
賦值符號的左邊必須是變量
賦值符號:是先算右邊的結果,然后再把結果賦給左邊的變量
number=100
number+=10 # 相當于:number=number+10
print(number)
number*=2
print(number) # number=number*2
結果:
110
220
5.運算符的優(yōu)先級
10+20*3-5/2=10+60-2.5=67.5 ---數學運算符
優(yōu)先級從低到高:賦值運算符<邏輯運算符<比較運算符<算數運算符
算數運算符中:先冪運算乘除取余取整再加減如果你不確定運算順序可以通過添加括號來改變運算順序,有括號就先算括號里面的
resulut=10+20>15 and 7*8<30+60
# resulut=30>15 and 56<90
# resulut=True and True
print(resulut)
print(10+20*3/2-10%3)
# 10+30-1
# 39
print(10*2**2) #40
print(10+20*3/(2-10)%3)
# 10+20*3/(-8)%3
# 10+60/(-8)%3
# 10+(-7.5)%3
# 10+1.5
# 1.15
結果:
True
39.0
40
11.5
05.進制轉換
數據在計算機中的存儲,存的都是二進制數(0101....)
1.認識十進制、二進制、八進制、十六進制
- 十進制
基數:0,1,2,3,4,5,6,7,8,9
特點:逢10進1 10----->10
12345=5+40+300+2000+10000
=51+410+3100+21000+110000
=5(100)+4*(101)+3(10^2)+2(103)+1*(104)
二進制
基數:0,1
特點:逢2進1 10---->2
101011=1(2^0)+1(21)+0*(22)+1(2^3)+0(24)+1*(25)八進制
基數:0,1,2,3,4,5,6,7,
特點:逢8進1 12------>10
- 十六進制
基數:0-9,a-f(A-F) -- a=10,b=11,c=12,d=13,e=14,f=15
特點:逢16進1
2f=47
進制間的轉換:
- 十進制轉換其他進制:整除取余法
- 八進制轉二進制:一位八進制轉換成三位二進制 ----> 23 = 010 011
- 十六進制轉二進制:一位十六進制轉換成四位的二進制 ----> 2f= 0010 1111
2.python中的二進制、八進制和十六進制
169 # 十進制數
在python中默認的數字都是十進制
- 二進制
基數是0,1,并且數字前加前綴0b表示二進制
0b1101
print(0b1101)
# bin(整數) -->將其他進制的數轉換成二進制數
print(bin(10))
print(bin(0x10))
結果:
13
0b1010
0b10000
- 八進制
基數是0-7,并且數字前面加前綴0o表示八進制
0o156
print(0o156)
# oct(整數) -->將其他進制的數轉換成八進制
print(oct(10))
結果:
110
0o12
- 十六進制
基數是0-9,a-f(A-F),并且數字前面加前綴0x表示十六進制
0x1a
print(0x1a)
# hex(整數) -->將其他進制的數轉換成十六進制
print(hex(10))
結果:
26
0xa
練習題如下:
day2作業(yè):
1.下列四組數,依次為二進制、八進制和十六進制,符合要求的是(D)
a. 12, 77, 10
b. 12, 80, 10
c. 11, 78, 19
d. 11, 77, 19
2.二進制數加法運算的基本特點是“逢二進一”,即0+0=0,0+1=1,1+0=1,1+1=0并進位。運用這一基本法則和十進制運算的類似規(guī)律,得出二進制數加法運算1001+101的結果為(C)
a. 1001
b. 1010
c. 1110
d. 1101
7.八進制754中的數碼7對應的位權是(C)
a. 10^2 b. 16^1 c. 8^2 d. 2^2
8.十進制數53轉換成二進制數是(B)
a. 100101
b. 110101
c.100100
d.110100
9.(偏難)已知,十進制中的8在X進制中表示為11,即(10)8=(X)11。請問這個X進制具體為(B)進制
a. 6
b. 7
c. 8
d. 9
10.(偏難)二進制的1000001相當十進制的④,二進制的100.001可以表示為④__。
A: ① 62 ② 63 ③ 64 ④ 65
B: ① 23+2–3 ② 22+2–2 ③ 23+2–2 ④ 22+2–3
下面定義變量正確的是(D)
a. a = b = c = 10
b. a,c = 10
c. in = 20
d. num = 10; t = 20n = 6784,以下能夠獲取到7 的方法有(C)
a. n / 1000 % 100
b. n % 1000 / 100
c. n // 100 % 10
d. n // 10 % 100 // 10
13.以下表達式 10 / 4 + 23 // 4 * 2 - 30的計算結果是:__-17.5____。