1. 內置函數
1> len:統計元素長度
str1 = 'wonderful' print(len(str1)) result: 9 li = [1,2,3] print(len(li)) result: 3 info = {'name':'zxj','age':23} print(len(info)) result: 2
2> in:判斷某元素是否在某種類型內,與之相反為 not in。均返回布爾值。
a='westlife' print('e' in a) result: True a='westlife' print('d' in a) result: False a='westlife' print('d' not in a) result: True a='westlife' print('e' in a) result: False
2. 基本運算符
運算符 |
描述 |
實例 |
+ |
兩個對象相加,對象可以是數字、列表、字符串等 |
a=20,b=10,a+b輸出結果為30 |
- |
一個數減去另外一個數 |
a-b輸出結果為10 |
* |
乘,數與數、字符串與數可以相乘 |
a*b輸出結果為200 |
/ |
除 |
a/b輸出結果為2 |
% |
取余(模) |
a%b輸出結果為0 |
** |
高階冪 |
2**3輸出結果為8 |
// |
取整除,取商的整數 |
9//2輸出結果為4 |
+支持數字、字符串、列表等對象相加:
l1 = [1,2,3] l2 = [1,2,4] print(l1+l2) result: [1,2.3,1,2,4]
不同類型之間的轉換,如將列表轉換為集合、元組:
l1 = [1,2,3] l2 = set(l1) l3 = tuple(l1) print(type(l1)) print(type(l2)) print(type(l3)) result: <class 'list'> <class 'set'> <class 'tuple'>
3. 比較運算符
運算符 |
描述 |
實例 |
= = |
等於,比較對象是否相等 |
a==b返回False |
!= |
不等於,比較兩個對象是否不相等 |
a!=b返回True |
< > |
不等於,比較兩個對象是否不相等 |
類似!= |
> |
大於 |
a>b返回True |
< |
小於 |
a<b返回False |
>= |
大於等於 |
a>=b返回True |
<= |
小於等於 |
a<=b返回False |
4. 賦值運算符
運算符 |
描述 |
實例 |
= |
賦值運算符 |
c=a+b,將a+b的結果賦值給c |
+= |
加法賦值運算符 |
c+=a等效於c=c+a |
-= |
減法賦值運算符 |
c-=a等效於c=c-a |
*= |
乘法賦值運算符 |
c*=a等效於c=c*a |
/= |
除法賦值運算符 |
c/=a等效於c=c/a |
%= |
取余賦值運算符 |
c%=a等效於c=c%a |
**= |
冪賦值運算符 |
c**=a等效於c=c**a |
//= |
取整除賦值運算符 |
c//=a等效於c=c//a |
5. 身份運算符
is:is與比較運算符==不同的是,is比較的是id是否相等,即比較內存地址是否一致,= =僅比較兩個值是否相等。
a=10 b=10.0 print(a==b) print(a is b) result: True False
一個內存地址可以對應多個變量,一個變量只能對應一個內存。
6. 邏輯運算符
運算符 |
描述 |
實例 |
and |
布爾“與”,前后為真才為真 |
a為真,b為真,a and b 為真; a為真,b為假,a and b為假。 |
or |
布爾“或”,前后為假才為假 |
a為假,b為假, a or b為假; a為真,b為假,a or b 為真。 |
not |
布爾“非”,非真為假,非假為真 |
a為真,not a為假; b為假,not b 為真。 |
7. 流程控制
Python語法以縮進來分層,縮進4個空格(Tab)表示內一層。
7.1 if語句
格式:
if 條件語句:
執行的代碼1
elif 執行的代碼2:
else:
執行的代碼塊3
None、0、空(‘’),則條件為假,其余條件為真。if后條件為真則執行代碼1,條件為假則執行else后的代碼3。注意:空格不為空。
if 2 : print('真') else : print('假') result: 真
if條件支持or、and、not等邏輯書寫。
7.2 while循環
格式:
while 條件:
循環體
條件為真則循環體執行,執行完后重新判斷條件。
條件為假則循環體不執行。
break:跳出循環;
continue:跳出本次循環后繼續執行循環;
pass:占位。占據當前位置,當不確定循環體如何設計時可以先用pass占位,保證語法格式。
#打印10以內的偶數 #方法一: i = 0 while i< 11: print(i) i +=2 #方法二: i = 0 while i < 11 : if i % 2 == 0: print(i) i +=1
result: 0 2 4 6 8 10 count = 0 while count <=5: count +=1 if count ==3 : continue print("loop" , count) result: loop 1 loop 2 loop 4 loop 5 loop 6 count = 0 while count <=5: count +=1 if count ==3 : break print("loop" , count) result: loop 1 loop 2 count = 0 while count <=5: count +=1 if count ==3 : pass print("loop" , count) result: loop 1 loop 2 loop 3 loop 4 loop 5 loop 6
while……..else……..:循環體執行完成后執行else后面的語句。
練習:寫一個猜拳小游戲
import random #調用random模塊,生成隨機數 win = 0 lose = 0 ping = 0 while True: print('=====歡迎來猜拳=====') print('勝:{} 敗:{} 平:{}'.format(win, lose, ping)) print('1.石頭 2.剪刀 3.布 4.退出') computer = random.choice(['石頭','剪刀','布']) hum = input('==>:')
#贏 if (hum == '1' and computer == '剪刀') or (hum == '2' and computer =='布') or (hum == '3' and computer == '石頭'): print('挺牛逼!') win += 1 #輸 elif hum == '3' and computer == '剪刀' or hum == '1' and computer =='布' or hum == '2' and computer == '石頭': print('菜雞!') lose += 1 #平 elif hum == '2' and computer == '剪刀' or hum == '3' and computer =='布' or hum == '1' and computer == '石頭': print('不要走,決戰到天亮') ping += 1 elif hum == '4': break else: print('別瞎輸入!!') print() #打印空行
result: =====歡迎來猜拳===== 勝:0 敗:0 平:0 1.石頭 2.剪刀 3.布 4.退出 ==>:1 菜雞! =====歡迎來猜拳===== 勝:0 敗:1 平:0 1.石頭 2.剪刀 3.布 4.退出 ==>:2 不要走,決戰到天亮 =====歡迎來猜拳===== 勝:0 敗:1 平:1 1.石頭 2.剪刀 3.布 4.退出 ==>:2 不要走,決戰到天亮 =====歡迎來猜拳===== 勝:0 敗:1 平:2 1.石頭 2.剪刀 3.布 4.退出 ==>:3 菜雞! =====歡迎來猜拳===== 勝:0 敗:2 平:2 1.石頭 2.剪刀 3.布 4.退出 ==>:4
Python可以通過命令pyinstaller將語句導出為.exe程序,pyinstaller可以在pycharm的終端通過pip安裝。
在終端使用pyinstaller -F 導出為exe程序。導出文件必須在虛擬環境下。
(yunwei) E:\Learning\python>pyinstaller -F game.py 171 INFO: PyInstaller: 3.4 172 INFO: Python: 3.6.8 ……. 29666 INFO: Appending archive to EXE E:\Learning\python\dist\game.exe 29680 INFO: Building EXE from EXE-00.toc completed successfully.
找到該文件,雙擊運行
7.3 for循環
格式:
for 變量 in range(start,end,step):
循環體
range(start,end,step)顧頭不顧尾,即范圍能取到start,取不到end,只能取到end的前一位。數字范圍默認start為0,可以省略;step為步長,在start~end的范圍間隔step取值。
for循環將可迭代對象變成了迭代器類型,因此可以遍歷字符串、列表、元組、字典等。
#打印1到5 or i in range(6): print(i) result: 0 1 2 3 4 5 #打印10以內的偶數 for i in range(0,11,2): print(i) result: 1 2 4 6 8 10 #遍歷列表 l1 = [1,2,3,4] for i in l1: print(i) result: 1 2 3 4 #遍歷元組 l1 = (1,2,3,4) for i in l1: print(i) result: 1 2 3 4 #遍歷字符串 l1 = 'zxj' for i in l1: print(i) result: z x j #遍歷字典,默認循環的key值 l1 = {'name':'言念君子','chara':'溫潤如玉'} for i in l1: print (i) result: name chara #循環value: l1 = {'name':'言念君子','chara':'溫潤如玉'} for i in l1.values(): print (i) result: 言念君子 溫潤如玉 #循環key、value鍵值對 l1 = {'name':'言念君子','chara':'溫潤如玉'} for i in l1.items(): print (i) result: ('name', '言念君子') ('chara', '溫潤如玉') #分別循環key、value l1 = {'name':'言念君子','chara':'溫潤如玉'} for i,k in l1.items(): print (i,k) result: name 言念君子 chara 溫潤如玉