Python程序控制語(yǔ)句用法實(shí)例分析
本文實(shí)例講述了Python程序控制語(yǔ)句用法。分享給大家供大家參考,具體如下:
1、換行
在Python中默認(rèn)換行結(jié)束一個(gè)語(yǔ)句而不是使用分號(hào),而如果我們的語(yǔ)句無(wú)法在一行放下需要換行時(shí),就需要在行尾使用\表示這一行沒(méi)有結(jié)束。而在()、[]、{}內(nèi)的逗號(hào)換行則不需要。
str='Hello'+\ ' World' print(str) #不會(huì)報(bào)錯(cuò),輸出:Hello World list1=[1,2, 3,4] print(list1) #輸出:[1, 2, 3, 4]
2、條件語(yǔ)句
python的代碼塊通過(guò)縮進(jìn)來(lái)指示,if條件判斷以:結(jié)束,并在下一行通過(guò)縮進(jìn)表示一個(gè)代碼塊的開(kāi)始,如果不遵守縮進(jìn)格式則會(huì)報(bào)錯(cuò)。其格式如下:
print("請(qǐng)輸入你的成績(jī)") score=int(input()) if score>=90: print("優(yōu)秀!") elif score<60: print("不及格!") else: print("良好")
3、循環(huán)語(yǔ)句
while:
i=0 count=0 while i<100: if i%3==0: count+=1 i+=1 print("100以?xún)?nèi)3的倍數(shù)有%d個(gè)"%count)
for可以循環(huán)遍歷元素集合中的每個(gè)元素,例如:
count=0 list1=[5,12,6,17,8,9,20] for i in list1: if i>10: count+=1 print("list1中大于10的數(shù)有%d個(gè)"%count)
通過(guò)enumerate可以訪(fǎng)問(wèn)到集合的索引:
L = ['Adam', 'Lisa', 'Bart'] for index, name in enumerate(L): print (index+1, '-', name,end=' ') #輸出:1 - Adam 2 - Lisa 3 - Bart d = { 'Adam': 95, 'Lisa': 85, 'Bart': 59, 'Paul': 74 } sum = 0.0 for k, v in d.items(): #通過(guò)items()訪(fǎng)問(wèn)鍵值 sum = sum + v print k,':',v print 'average', ':', sum/4 #輸出:Lisa : 85 Paul : 74 Adam : 95 Bart : 59 average : 78.25
輸出:1 - Adam 2 - Lisa 3 - Bart
列表推導(dǎo)式可以通過(guò)for循環(huán)作用于列表,生成列表元素
list1=[1,2,3] list2=[2,3,4] print([x*y for x in list1 for y in list2]) #輸出:[2, 3, 4, 4, 6, 8, 6, 9, 12] print([x for x in list1 if x>1]) #輸出:[2, 3]
循環(huán)嵌套:
for i in range(1,10): #range表示從1到9的數(shù) for j in range(1,i+1): print("%d × %d = %-5d"%(i,j,i*j),end=' ') print()
可以通過(guò)break跳出本層循環(huán),continue跳過(guò)本次循環(huán),pass語(yǔ)句表示占位,沒(méi)有實(shí)際的功能。
例如輸出100以?xún)?nèi)的素?cái)?shù):
i=2 while i<100: flag=True j=2 while j<i: if i%j==0: flag=False break #當(dāng)可以整除時(shí),此時(shí)i不是素?cái)?shù),則不必繼續(xù)往下判斷,跳出本層循環(huán) j+=1 if flag: print(i,end=' ') i+=1
4、函數(shù)
函數(shù)通過(guò)“def”關(guān)鍵字進(jìn)行聲明,后接函數(shù)標(biāo)識(shí)符名稱(chēng)和圓括號(hào)()
任何傳入?yún)?shù)和自變量必須放在圓括號(hào)中間,圓括號(hào)之間可以用于定義參數(shù)。可選參數(shù)以集合的方式放在必選參數(shù)之后,可以賦予默認(rèn)值。已命名的參數(shù)需要賦值。
函數(shù)的第一行語(yǔ)句可以選擇性地使用文檔字符串,用于存放函數(shù)說(shuō)明,通過(guò)函數(shù)名.__doc__輸出該信息
return [表達(dá)式] 結(jié)束函數(shù),返回一個(gè)值給調(diào)用方。不帶表達(dá)式的return相當(dāng)于返回None。也可以返回一個(gè)元組(使用元組拆包可以有效返回多個(gè)值)
def myFunction(list1,int1=0,str1="default"): #函數(shù)定義,其中int1,str1為可選參數(shù) "這是函數(shù)文檔說(shuō)明" list1.append("add") int1+=1; return list1,int1,str1 #返回元組 print(myFunction.__doc__) #輸出函數(shù)文檔:這是函數(shù)文檔說(shuō)明 list1=[1,2,3] print(myFunction(list1)) #打印返回的元組:([1, 2, 3, 'add'], 1, 'default') v1,v2,v3=myFunction(list1) #對(duì)返回結(jié)果進(jìn)行拆包,并分別傳給三個(gè)變量 print(v1,v2,v3) #分拆結(jié)果輸出:[1, 2, 3, 'add', 'add'] 1 default
還可以傳入可變數(shù)量個(gè)參數(shù)*args,其實(shí)際上是一個(gè)元組tuple,通過(guò)遍歷可以取出其可變的參數(shù)
def average(*args): if len(args)==0: #若沒(méi)有參數(shù)傳入 return 0.0 else: sum=0.0 for i in args: #遍歷參數(shù)元組內(nèi)容 sum+=i return sum/len(args) print(average()) #輸出:0.0 print(average(1, 2, 2, 3, 4) ) #輸出:2.4
5、全局變量
全局變量在函數(shù)之外聲明
局部變量在函數(shù)內(nèi)容聲明或是函數(shù)參數(shù)
如果想要修改全局變量的值,必須在函數(shù)開(kāi)始用global關(guān)鍵字進(jìn)行聲明,否則會(huì)被認(rèn)為是函數(shù)內(nèi)新的局部變量
var=5 def fun(): global var #函數(shù)內(nèi)部聲明使用全局變量var并對(duì)其進(jìn)行修改 var=3 fun() print(var) #輸出:3,而不是5
6、類(lèi)的定義與使用
類(lèi)的第一行可選字符串,輸出類(lèi)幫助信息
類(lèi)屬性可以通過(guò)實(shí)例內(nèi)或者外部通過(guò)類(lèi)進(jìn)行訪(fǎng)問(wèn)
__init__()是類(lèi)的構(gòu)造函數(shù),在創(chuàng)建一個(gè)類(lèi)實(shí)例時(shí)自動(dòng)調(diào)用,完成對(duì)實(shí)例屬性的初始化工作。類(lèi)方法的第一個(gè)參數(shù)默認(rèn)為self,代表實(shí)例本身,可以通過(guò)它訪(fǎng)問(wèn)實(shí)例本身的屬性,在調(diào)用時(shí)不必傳給參數(shù)
class Student(object): "這是一個(gè)學(xué)生類(lèi)" #類(lèi)幫助信息 studentCount=0 #類(lèi)屬性 def __init__(self,name,age): #類(lèi)構(gòu)造函數(shù) self.name=name #初始化屬性 self.age=age Student.studentCount+=1 def showCount(self): print("現(xiàn)在學(xué)生人數(shù)為:%d"%Student.studentCount) #訪(fǎng)問(wèn)類(lèi)屬性 def showStudent(self): #定義類(lèi)方法 print("姓名:%s,年齡:%d"%(self.name,self.age)) print(Student.__doc__) #輸出類(lèi)幫助信息 s1=Student('小明',15) #類(lèi)實(shí)例化 s2=Student('小李',23) s1.showCount() #調(diào)用類(lèi)的函數(shù) s2.showStudent()
7、文件操作
通過(guò)python自帶的函數(shù)庫(kù)完成對(duì)文件的讀寫(xiě),open()函數(shù)第一個(gè)參數(shù)為文件路徑,第二個(gè)為打開(kāi)方式
with open("test.txt",'wt') as w_file: w_file.write("文件寫(xiě)入測(cè)試!") with open("test.txt",'rt') as r_file: str=r_file.read() print(str)
8、異常處理
在try后放入可能存在異常的函數(shù)體,通過(guò)except捕獲異常并執(zhí)行相應(yīng)操作,否則執(zhí)行else后的語(yǔ)句,最后無(wú)論是否出現(xiàn)異常都執(zhí)行finally后的語(yǔ)句
def except_fun(): try: 10/0 except: print("發(fā)生異常") else: print("正常執(zhí)行") finally: print("程序結(jié)束") except_fun() #輸出: #發(fā)生異常 #程序結(jié)束
9、調(diào)用外部函數(shù)庫(kù)
利用python強(qiáng)大的外部資源可以非常便捷地完成一些操作
import random #導(dǎo)入外部庫(kù) from time import time #from 外部庫(kù) import 某個(gè)函數(shù) import numpy as np #導(dǎo)入庫(kù)并重命名 import matplotlib.pyplot as plt rdm=random.randint(1,100) #在1到100之間產(chǎn)生隨機(jī)數(shù) print(rdm) start=time() #產(chǎn)生當(dāng)前的時(shí)間函數(shù) print(start) x=np.linspace(1,10,100) #在1到10之間產(chǎn)生100個(gè)等差數(shù)并返回列表x y=2*x+1 plt.figure() #繪制圖片 plt.scatter(x,y) #將列表數(shù)據(jù)x、y繪制到圖片,結(jié)果為一條直線(xiàn) print("程序運(yùn)行時(shí)間:%f"%(time()-start)) #通過(guò)time函數(shù)計(jì)算程序的運(yùn)行時(shí)間
10、獲取幫助
dir()可以打印某個(gè)類(lèi)型的所有函數(shù),help()可以打印某個(gè)類(lèi)的幫助信息
dir(int) help(list)
更多關(guān)于Python相關(guān)內(nèi)容感興趣的讀者可查看本站專(zhuān)題:《Python入門(mén)與進(jìn)階經(jīng)典教程》、《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python函數(shù)使用技巧總結(jié)》、《Python字符串操作技巧匯總》及《Python文件與目錄操作技巧匯總》
希望本文所述對(duì)大家Python程序設(shè)計(jì)有所幫助。
相關(guān)文章
Python SMTP發(fā)送郵件遇到的一些問(wèn)題及解決辦法
今天小編就為大家分享一篇關(guān)于Python SMTP發(fā)送郵件遇到的一些問(wèn)題及解決辦法,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧2018-10-103分鐘學(xué)會(huì)一個(gè)Python小技巧
Python時(shí)間日期轉(zhuǎn)換在開(kāi)發(fā)中是非常高頻的一個(gè)操作,你經(jīng)常會(huì)遇到需要將字符串轉(zhuǎn)換成 datetime 或者是反過(guò)來(lái)將 datetime 轉(zhuǎn)換成字符串,今天小編給大家?guī)?lái)了一個(gè)Python小技巧,感興趣的朋友一起看看吧2018-11-11解決pip install的時(shí)候報(bào)錯(cuò)timed out的問(wèn)題
今天小編就為大家分享一篇解決pip install的時(shí)候報(bào)錯(cuò)timed out的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-06-06使用Python裝飾器在Django框架下去除冗余代碼的教程
這篇文章主要介紹了使用Python裝飾器在Django框架下去除冗余代碼的教程,主要是處理JSON代碼的一些冗余,需要的朋友可以參考下2015-04-04深入理解Python虛擬機(jī)中常見(jiàn)魔術(shù)方法的使用
本文主要給大家介紹在 python 當(dāng)中與數(shù)學(xué)計(jì)算相關(guān)的一些常見(jiàn)的魔術(shù)方法,是在很多科學(xué)計(jì)算的包當(dāng)中都使用到的魔術(shù)方法,感興趣的小伙伴可以了解一下2023-05-05