溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Python程序控制語句用法實(shí)例分析

發(fā)布時間:2020-09-01 14:16:32 來源:腳本之家 閱讀:164 作者:theVicTory 欄目:開發(fā)技術(shù)

本文實(shí)例講述了Python程序控制語句用法。分享給大家供大家參考,具體如下:

1、換行

在Python中默認(rèn)換行結(jié)束一個語句而不是使用分號,而如果我們的語句無法在一行放下需要換行時,就需要在行尾使用\表示這一行沒有結(jié)束。而在()、[]、{}內(nèi)的逗號換行則不需要。

str='Hello'+\
  ' World'
print(str)    #不會報錯,輸出:Hello World
list1=[1,2,
   3,4]
print(list1)   #輸出:[1, 2, 3, 4]

2、條件語句

python的代碼塊通過縮進(jìn)來指示,if條件判斷以:結(jié)束,并在下一行通過縮進(jìn)表示一個代碼塊的開始,如果不遵守縮進(jìn)格式則會報錯。其格式如下:

Python程序控制語句用法實(shí)例分析

print("請輸入你的成績")
score=int(input())
if score>=90:
  print("優(yōu)秀!")
elif score<60:
  print("不及格!")
else:
  print("良好")

3、循環(huán)語句

while:

i=0
count=0
while i<100:
  if i%3==0:
    count+=1
  i+=1
print("100以內(nèi)3的倍數(shù)有%d個"%count)

for可以循環(huán)遍歷元素集合中的每個元素,例如:

count=0
list1=[5,12,6,17,8,9,20]
for i in list1:
  if i>10:
    count+=1
print("list1中大于10的數(shù)有%d個"%count)

通過enumerate可以訪問到集合的索引:

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():          #通過items()訪問鍵值
  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)式可以通過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()

可以通過break跳出本層循環(huán),continue跳過本次循環(huán),pass語句表示占位,沒有實(shí)際的功能。

例如輸出100以內(nèi)的素數(shù):

i=2
while i<100:
  flag=True
  j=2
  while j<i:
    if i%j==0:
      flag=False
      break      #當(dāng)可以整除時,此時i不是素數(shù),則不必繼續(xù)往下判斷,跳出本層循環(huán)
    j+=1
  if flag:
    print(i,end=' ')
  i+=1

4、函數(shù)

函數(shù)通過“def”關(guān)鍵字進(jìn)行聲明,后接函數(shù)標(biāo)識符名稱和圓括號()

任何傳入?yún)?shù)和自變量必須放在圓括號中間,圓括號之間可以用于定義參數(shù)??蛇x參數(shù)以集合的方式放在必選參數(shù)之后,可以賦予默認(rèn)值。已命名的參數(shù)需要賦值。

函數(shù)的第一行語句可以選擇性地使用文檔字符串,用于存放函數(shù)說明,通過函數(shù)名.__doc__輸出該信息

return [表達(dá)式] 結(jié)束函數(shù),返回一個值給調(diào)用方。不帶表達(dá)式的return相當(dāng)于返回None。也可以返回一個元組(使用元組拆包可以有效返回多個值)

def myFunction(list1,int1=0,str1="default"):  #函數(shù)定義,其中int1,str1為可選參數(shù)
  "這是函數(shù)文檔說明"
  list1.append("add")
  int1+=1;
  return list1,int1,str1      #返回元組
print(myFunction.__doc__)      #輸出函數(shù)文檔:這是函數(shù)文檔說明
list1=[1,2,3]
print(myFunction(list1))       #打印返回的元組:([1, 2, 3, 'add'], 1, 'default')
v1,v2,v3=myFunction(list1)      #對返回結(jié)果進(jìn)行拆包,并分別傳給三個變量
print(v1,v2,v3)           #分拆結(jié)果輸出:[1, 2, 3, 'add', 'add'] 1 default

還可以傳入可變數(shù)量個參數(shù)*args,其實(shí)際上是一個元組tuple,通過遍歷可以取出其可變的參數(shù)

def average(*args):
  if len(args)==0:        #若沒有參數(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ù)開始用global關(guān)鍵字進(jìn)行聲明,否則會被認(rèn)為是函數(shù)內(nèi)新的局部變量

var=5
def fun():
  global var    #函數(shù)內(nèi)部聲明使用全局變量var并對其進(jìn)行修改
  var=3
fun()
print(var)      #輸出:3,而不是5

6、類的定義與使用

類的第一行可選字符串,輸出類幫助信息

類屬性可以通過實(shí)例內(nèi)或者外部通過類進(jìn)行訪問

__init__()是類的構(gòu)造函數(shù),在創(chuàng)建一個類實(shí)例時自動調(diào)用,完成對實(shí)例屬性的初始化工作。類方法的第一個參數(shù)默認(rèn)為self,代表實(shí)例本身,可以通過它訪問實(shí)例本身的屬性,在調(diào)用時不必傳給參數(shù)

class Student(object):
  "這是一個學(xué)生類"                    #類幫助信息
  studentCount=0                     #類屬性
  def __init__(self,name,age):              #類構(gòu)造函數(shù)
    self.name=name                   #初始化屬性
    self.age=age
    Student.studentCount+=1
  def showCount(self):
    print("現(xiàn)在學(xué)生人數(shù)為:%d"%Student.studentCount)   #訪問類屬性
  def showStudent(self):                 #定義類方法
    print("姓名:%s,年齡:%d"%(self.name,self.age))
print(Student.__doc__)                    #輸出類幫助信息
s1=Student('小明',15)                     #類實(shí)例化
s2=Student('小李',23)
s1.showCount()                        #調(diào)用類的函數(shù)
s2.showStudent()

7、文件操作

通過python自帶的函數(shù)庫完成對文件的讀寫,open()函數(shù)第一個參數(shù)為文件路徑,第二個為打開方式

with open("test.txt",'wt') as w_file:
  w_file.write("文件寫入測試!")
with open("test.txt",'rt') as r_file:
  str=r_file.read()
print(str)

8、異常處理

在try后放入可能存在異常的函數(shù)體,通過except捕獲異常并執(zhí)行相應(yīng)操作,否則執(zhí)行else后的語句,最后無論是否出現(xiàn)異常都執(zhí)行finally后的語句

def except_fun():
  try:
    10/0
  except:
    print("發(fā)生異常")
  else:
    print("正常執(zhí)行")
  finally:
    print("程序結(jié)束")
except_fun()
#輸出:
#發(fā)生異常
#程序結(jié)束

9、調(diào)用外部函數(shù)庫

利用python強(qiáng)大的外部資源可以非常便捷地完成一些操作

import random              #導(dǎo)入外部庫
from time import time          #from 外部庫 import 某個函數(shù)
import numpy as np            #導(dǎo)入庫并重命名
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ù)
print(start)
x=np.linspace(1,10,100)         #在1到10之間產(chǎn)生100個等差數(shù)并返回列表x
y=2*x+1
plt.figure()               #繪制圖片
plt.scatter(x,y)             #將列表數(shù)據(jù)x、y繪制到圖片,結(jié)果為一條直線
print("程序運(yùn)行時間:%f"%(time()-start))  #通過time函數(shù)計算程序的運(yùn)行時間

10、獲取幫助

dir()可以打印某個類型的所有函數(shù),help()可以打印某個類的幫助信息

dir(int)
help(list)

更多關(guān)于Python相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Python入門與進(jìn)階經(jīng)典教程》、《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python函數(shù)使用技巧總結(jié)》、《Python字符串操作技巧匯總》及《Python文件與目錄操作技巧匯總》

希望本文所述對大家Python程序設(shè)計有所幫助。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI