Python程序的流程控制:html
python程序是從上至下逐行執行的python
python的if語句的語法:程序員
if 條件1:ide
條件1成立的狀況下執行函數
elif 條件2:優化
條件2成立的狀況下執行 spa
elif 條件3:3d
條件3成立的狀況下執行code
... htm
else:
以前的全部條件均不成立的狀況下執行
定義:if判斷在程序中是用於邏輯判斷的。
用如下幾個例子來講明if判斷的做用。
# 猜年齡 xiaobai_age = 18 # 先定義好一個初始值的變量 user_input = int(input("Please guess xiaobai's age:")) # 再定義一個變量,因爲是要與上一個變量進行比較,因此要強制改成整型 if user_input > xiaobai_age: # 如下的邏輯判斷則是在對以上的兩個變量進行對比,而後做出相應的結果 print("Try smaller") elif user_input < xiaobai_age: print("Try bigger") else: print("You got it")
# 用戶登錄 user = "xiaobai" pwd = "123456" # 先定義好用戶名和密碼的變量 user_input = input("Please input your username:") # 再定義好用戶輸入的用戶名和密碼的變量 password = input("Please input your password:") if user_input == user and password == pwd: # 將這兩組變量進行對比判斷 print("login successfully") else: print("Sorry,your username or password is wrong,please Try again!")
# 查當作績 user = int(input("Please input your scores:")) # 先定義一個用戶輸入的變量,由於是要用於做比較,因此必須強制改成整型 # 如下是做判斷 if user > 90: print("You got an 'A'") elif user < 90 and user > 70: print("You got a 'B'") elif user < 70 and user > 60: print("You got a 'C'") else: print("You got a 'D'")
Python的while語句的語法:
while 條件:
循環體
若是條件爲真,循環體則執行
若是條件爲假,循環體則不執行
定義:while循環在程序中是用來重複幹一件事情的。常見的應用場景有:好比登錄QQ時要輸入帳號密碼
用如下幾個簡單的實例來講明while循環
# while循環的簡單實例 while 1: # while 1:表示條件爲1時打印「OK」, # 每打印完「OK」後又返回到起始位置再來判斷條件,反覆執行,這是一個死循環 print("OK") print("1111111111") # 因此在循環外的字符「1111111111」不會被打印
# while循環的簡單實例 while 3>2: # while 3>2:表示條件3>2時打印「OK」, # 每打印完「OK」後又返回到起始位置再來判斷條件,由於3永遠大於2,反覆執行,這又是一個死循環 print("OK") print("1111111111") # 因此在循環外的字符「1111111111」不會被打印
# while循環的簡單實例 while True: # while True:表示條件永遠爲真時打印「OK」, # 每打印完「OK」後又返回到起始位置再來判斷條件,由於永遠爲真,反覆執行,這又是一個死循環 print("OK") print("1111111111") # 因此在循環外的字符「1111111111」不會被打印
# while循環的簡單實例 while False: # while False:表示條件不成立,則不會打印循環體內的「OK」字符, print("OK") print("1111111111") # 因此在循環外的字符「1111111111」會被打印
先來個容易讓人迷惑的例子
# while循環的簡單實例 count = 1 while count<10: print("OK") print("111111111") # 並非打印10次「OK」,而是一個死循環, # 由於變量count每次循環都沒有變化,都是等於1,每進入循環時都是拿1<10做比較,因此這是一個死循環 # 循環外的字符「11111111」不會被打印
若要打印9次「OK」,則將程序改成:
# while循環的簡單實例 count = 1 # 先定義變量count,並賦值1 while count<10: # 設定條件,把count print("OK",count) # 打印字符「OK」,並打印count變量每次循環的次數變化 count += 1 # 最關鍵的一步:將conunt自增1操做,這樣每次循環的變量count的數字都會變化,直到小於10後中止循環。
print("111111111") # 以上循環中止後程序將繼續執行,將會打印字符"11111111"
輸出結果:
OK 1 OK 2 OK 3 OK 4 OK 5 OK 6 OK 7 OK 8 OK 9 111111111
終止當前循環,跳出循環體
終止本次循環並開始下一輪循環
打個很是通俗易懂的比方來理解break與continue的區別:
一個比較叛逆的學生在學校上課,某天由於犯了錯捱了老師的罵,叛逆的他便打了老師一頓,違反了校規,被學校責令停課一天檢討,次日又繼續讓其上課。這就相似於循環體中的continue。
又某一天該學生又犯了錯被校長訓斥了,因而叛逆的他便打了校長一頓,此次嚴重違反了校規,直接被學校開除了,之後就不能來學校上課了。這就相似於循環體中的break。
例1:簡單的用戶輸入命令程序
# 簡單的用戶輸入命令的程序 user = "xiaobai" pwd = "123456" while True: user_input = input("Please input your username:") password = input("Please input your password:") if user_input == user and password == pwd: print("Login succefully") # 用戶名密碼驗證成功後則進入下一個循環 while True: res = input("Please input command:") if res == "q": break # 這個break表示當res變量等於q時,則退出當前循環 print("user input command is %s"%res) break # 這個break的意思表示當以上循環退出時,再退出當前的循環,這裏能夠在以前加上else:也能夠不加
因爲出現2個break,雖然程序沒有錯,可是很容易讓程序員誤解,這時就要用到標識位來解決這個問題,具體操做以下:
# 簡單的用戶輸入命令的程序 user = "xiaobai" pwd = "123456" tag = True # 標識位,至關於生活中的紅綠燈,紅燈停,綠燈行,讓一個變量把True存儲起來 while tag: # 至關於while True,只不過是用tag變量代替了。 user_input = input("Please input your username:") password = input("Please input your password:") if user_input == user and password == pwd: print("Login succefully") while tag: # 至關於while True,只不過是用tag變量代替了。 res = input("Please input command:") if res == "q": # 當變量res等於字符「q」時,下面是最重要的一步來了 tag = False # tag改成False,那麼本次的循環就是while False了,while False的特性就是不會運行循環內的代碼。 # 至關於break,直接跳出了當前循環 continue # 這裏加上continue是爲了避免打印"q"這個命令,由於退出了程序就不須要打印了。表示跳出本次循環。 print("user input command is %s"%res) break # 這個break表示上面的命令都執行完了則退出當前的主體循環
Python中for語句的語法:
for 變量名 in range(範圍)
循環體
定義:和while循環同樣,也是用於程序重複作某一件事
range()是內建函數,表示範圍
例1:for語句的簡單示例
# for 語句的簡單示例 for i in range(5): # 默認從0開始,打印5次字符「OK」 print("OK",i)
輸出結果:
OK 0 OK 1 OK 2 OK 3 OK 4
例2:for語句的簡單示例2
# for 語句的簡單示例2 for i in range(1,5): # 表示取從1到4的範圍,顧首不顧尾 print("OK",i)
輸出結果:
OK 1 OK 2 OK 3 OK 4
例3:for語句的簡單示例3
# for 語句的簡單示例3 for i in range(1,5,2): # 表示取從1到4的範圍,顧首不顧尾,且隔一個值取。括號中第三個數表示步長 print("OK",i)
輸出結果:
OK 1
OK 3
例4:九九乘法表
# 九九乘法表 for i in range(1,10): for j in range(1,i+1): print("%s*%s=%s" %(i,j,i*j),end=' ') # end是用來避免print自帶的換行功能。 print() # print自帶換行功能
誤區:如下是新手會常犯的錯誤,用最笨拙的方法:依次將count的值代入至循環體內進行反覆運算,直到count的值等於7時,此時count再也不做自增1的操做了,而是把count等於7的值再回到上面再繼續代入至循環體內,碰到if count==7:時又跳出本次循環繼續將7代入,反覆如此即是死循環了。
輸出結果:
1 2 3 4 5 6
從輸出的結果看好像只是輸出了1-6的數字,實際上這是一個死循環,只須要在if count == 7:下面加上一行打印的代碼就能看到效果。
解決方法:
(1)方法一:在以上代碼中在if count ==7:下面插入一條count += 1便可
# 一、使用while循環輸出一、二、三、四、五、六、八、九、10 count = 1 while count<11: if count == 7: count += 1 # 做用:當count等於7時,跳出本次循環,再自增1 continue print(count) count += 1
輸出結果:
1 2 3 4 5 6 8 9 10
(2)方法二:優化方法一的代碼
# 一、使用while循環輸出一、二、三、四、五、六、八、九、10 count = 1 while count<11: if count != 7: print(count) count += 1
輸出結果:
1 2 3 4 5 6 8 9 10
(1)方法一:用while循環實現1-100全部數的和
# 二、求1-100的全部數的和 count = 1 # 設定一個初始值 sum = 0 # 設定一個總數的初始值,用於存儲總數的計算結果 while count < 101: # 設定循環1-100的範圍 sum = sum + count # 讓每次循環的結果相加並賦給sum count += 1 # count自增1操做 print(sum)
輸出結果:
5050
(2)方法二:用for循環實現1-100全部數的和
sum = 0 # 設定一個總數的初始值,用於存儲總數的計算結果 for i in range(1,101): # 設定循環1-100的範圍 sum = sum + i # 讓每次循環的結果相加並賦給sum print(sum)
輸出結果:
5050
(1)方法一:用while循環實現1-100全部偶數的和
# 三、輸出1-100內的全部的偶數 count = 1 while count<101: if count % 2 == 0: # 取餘運算,表示能被2整除 print(count) count += 1
輸出結果:
2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40 42 44 46 48 50 52 54 56 58 60 62 64 66 68 70 72 74 76 78 80 82 84 86 88 90 92 94 96 98 100
(2)方法二:用for循環實現1-100全部偶數的和
# 三、輸出1-100內的全部的偶數 for i in range(1,101): if i % 2 == 0: print(i)
輸出結果:
2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40 42 44 46 48 50 52 54 56 58 60 62 64 66 68 70 72 74 76 78 80 82 84 86 88 90 92 94 96 98 100
以上的方法中還能夠將取餘等於0改爲取餘不等於0
(1)方法一:用while循環求1-2+3-4+5-6...99的全部數的和
# 四、求1-2+3-4+5-6...99的全部數的和 count = 1 sum = 0 while count < 100: if count % 2 == 0: sum = sum - count # 全部負偶數的和 else: sum = sum + count # 全部奇數的和 count += 1 print(sum)
輸出結果:
50
(1)方法二:用for循環求1-2+3-4+5-6...99的全部數的和
# 四、求1-2+3-4+5-6...99的全部數的和 sum = 0 for i in range(1,100): if i % 2 == 0: sum = sum - i # 全部負偶數的和 else: sum = sum + i # 全部奇數的和 print(sum)
關於這一題,有不少種方法,下面我就以個人思路來解題。
(1)方法一:
# 三次登錄 user = "xiaobai" pwd = "123456" # 這裏必定要加上引號,不然程序會出錯 count = 1 while True: username = input("Please input your username:") password = input("Please input your password:") if username == user and password == pwd: print("Login successfully!") break else: if count >= 3: print("Login fail,Please try again") break count += 1
(2)方法二:
user = "xiaobai" pwd = "123456" # 這裏必定要加上引號,不然程序會出錯 count = 0 while True: if count == 3: print("Too many times!") break username = input("Please input your username:") password = input("Please input your password:") if username == user and password == pwd: print("Login successfully!") break count += 1
就例舉pycharm中最經常使用的一些功能的快捷鍵:
一、shift + 回車鍵跳轉至下一行
二、鼠標滾輪按住拖動不放,表示選中的軌跡同時進行編輯
三、ctrl + / 選中行註釋
四、將選中的行按Tab鍵,至關於所選的行行首都增長了一個tab鍵
五、將選中的行按shift鍵和Tab鍵,至關於所選的行行首都減小一個tab鍵
暫時寫到這裏,之後有補充再加上去
數據類型指的是變量的值的不一樣的類型,用來表示不一樣的狀態
查看python數據類型的命令是:type()函數
查看python數據的內存地址的命令是:id()函數
在Python3中已沒有長整型的概念,咱們要用到的最經常使用的就是整型和浮點型。
數字類型的特性:
<1> 只能存放一個值
<2> 一旦定義,不可更改
<3> 直接訪問
數字類型的經常使用操做就是用來加減乘除等計算用的。
用 int()能夠強制轉換爲數字類型,前提條件是字符串必須是數字,不然報錯
直接定義,例如:
n = 1 # 這就定義了一個整型
# 用type(n)就能夠查看到這是一個整型的數據類型
<1>直接定義,例如:
n = 1.85 # 這就定義了一個浮點型
# 用type(n)就能夠查看到這是一個浮點型的數據類型
<2>補充1:
Python的科學記數法
用「e」表示的:
例如:
print(1.8e-3) # 表示1800.0
print(1,8e3) # 表示0.0018
<3>補充2:
Python實現十進制轉二進制
十進制轉換二進制的命令是bin()的函數
例如:
print(bin(10)) # 獲得的結果是:「0b1010」,「0b」表明二進制
<4>補充3:
Python實現十進制轉八進制
十進制轉換八進制的命令是oct()的函數
例如:
print(oct(10)) # 獲得的結果是:「0o12」,「0o」表明八進制
<5>補充4:
Python實現十進制轉十六進制
十進制轉換十六進制的命令是hex()的函數
例如:
print(hex(10)) # 獲得的結果是:「0xa」,「0x」表明十六進制
(1)定義:
Python中定義在引號裏面的就叫作字符串類型,字符串是由一個個的字符組成的。
用 str( )能夠強制轉換字符類型
字符串類型的特性:
<1> 只能存放一個值
<2> 不可變
<3> 按照從左至右的順序定義字符集合,下標從0開始順序訪問,有序
例:
s1 = 'hello world'
s2 ="hello world"
s3 = '''hello world'''
s4 = """hello world"""
字符串的方法是在字符後加上「.」來進行操做的。
字符串經常使用的操做有:
移除空白 strip()
分割 : s.split("|")
長度: 例:len(s)
索引: 例:s[3]、s[-1]
切片: 例:s[0:5:2]
具體參照 http://www.cnblogs.com/xiaoxiaobai/p/7612042.html
<1>索引
用「[ ]」來對字符串進行索引操做
若中括號裏的索引數爲正數,則從左至右找,從0開始取
若中括號裏的索引數爲負數,則從右至左找,從-1開始取
若中括號裏的索引數超出要取的字符串的長度,程序則會報錯:IndexError: string index out of range
例:取出字母」o「
s = "xiaobai" # 數字符串「xiaobai」中的字母「o」所在的索引位置,從左至右,從0開始
print(s[3])
<2>切片
用「[:]」來對字符串進行切片操做
[:],表示取出字符串中的全部字符
[1:],表示從索位置1開始一直取到字符串最後一個字符
[:2],表示從索引位置0開始一直取到索引位置1的字符,顧首不顧尾
[2:6],表示從索引位置2開始一直取到索引位置5的字符,顧首不顧尾
[-1:],表示從取出字符串中最後一位字符
[:-1],表示取出除了字符串中最後一位字符的全部字符
[3:-2],表示從取出索引3至倒數2位置之間的字符
[1:6:2],表示取出索引1至索引5位置的字符,而且取出的字符每隔一個取一個,最後的「2」表示步長, 由於是正數,表示從左至右隔一個取
例:取出索引位置1和3所在的字母
s = "xiaobai"
print(s[1:3])