函數:
一塊具有獨立功能的代碼塊,重複使用,那麼往往就需要使用函數,使用函數把這塊代碼封裝成一個整體
語法
def 函數名(形參):
函數代碼 (函數要執行的代碼)
調用
函數名(實參)
函數的參數根據實際需求可有可無
局部變量:在函數裏面定義的變量,它只在定義它的函數中有效,出了這個函數後不可訪問。函數的形參屬於局部變量。
全局變量:在函數外邊定義的變量,在某個函數中可以直接訪問,但要對其修改,則要寫上global 變量名這條語句進行聲明,才能對全局變量進行修改,否則會產生異常。
函數返回值 return可以返回多個數據,通過列表或元祖的形式把數據整合成一個整體,然後返回
在這裏編寫程序實現學生信息管理系統的添加、更改、顯示功能。
代碼如下
#用來保存學生的所有信息
stuInfos=[]
#全局變量
newName=""
newSex=""
newPhone=""
#打印功能提示
def printMenu():
print("="*30)
print(" 學生管理系統v1.0")
print("1.添加學生信息")
print("2.刪除學生信息")
print("3.修改學生信息")
print("4.查詢學生信息")
print("5.顯示所有學生信息")
print("0.退出系統")
print("="*30)
#獲取一個學生的信息
def getInfo():
global newName
global newSex
global newPhone
#這三個是全局變量,要對其進行修改,則要先聲明
newName=input("請輸入學生的姓名:")
newSex=input("請輸入學生的性別:")
newPhone=input("請輸入學生的手機號碼:")
#通過列表的形式把數據整合成一個整體,然後返回
return [newName,newSex,newPhone]
#添加學生信息
def addStuInfo():
result=getInfo()
newInfo={}
newInfo['name']=result[0]
newInfo['sex']=result[1]
newInfo['phone']=result[2]
stuInfos.append(newInfo)
#修改一個學生的信息
def modifyStuInfo():
stuId=int(input("請輸入要修改的學生的序號:"))
getInfo()
#先獲得要修改的學生在stuInfos中的位置,即stuId-1,當前位置是以字典形式存的,再找字典中要修改的值對應的鍵,即姓名···
stuInfos[stuId-1]['name']=newName
stuInfos[stuId-1]['sex']=newSex
stuInfos[stuId-1]['phone']=newPhone
def main():
while True:
#打印提示信息
printMenu()
key=input("請輸入你要選擇的操作:")
if key=='1':
#添加學生信息
addStuInfo()
elif key=='3':
#修改學生信息
modifyStuInfo()
elif key=='5':
print("="*30)
print("學生的信息如下:")
print("序號 姓名 性別 手機號碼")
i=1
for tempInfo in stuInfos:
print("%d %s %s %s"%(i,tempInfo['name'],tempInfo['sex'],tempInfo['phone']))
i+=1
#調用主函數
main()