Python實現(xiàn)ATM簡單功能的示例詳解
一.局部變量、全局變量
1.什么是局部變量
作用范圍在函數(shù)內(nèi)部,在函數(shù)外部無法使用
2.什么是全局變量
在函數(shù)內(nèi)部和外部均可使用
3.如何將函數(shù)內(nèi)定義的變量聲明為全局變量
使用global關鍵字,global變量
二.global關鍵字
思考:
num=100 def testsA() print(num) def testB() num=200 print(num) testA() #結果:100 testB() #結果:200 print(f'全局變量num={num}') #結果:全局變量num=100
testB函數(shù)需要修改變量num的值為200,如何修改程序?
這時我們就需要把局部變量轉變?yōu)槿肿兞?,利用global關鍵字
演示
num = 200 def A(): print(f"A:{num}") def B(): global num num = 500 print(f"B:{num}") A() B() print(num)
結果是
三.編寫ATM程序
要求
定義一個全局變量: money,用來記錄銀行卡余額(默認5000000)
定義一個全局變量: name,用來記錄客戶姓名(啟動程序時輸入)
定義如下的函數(shù):
- 查詢余額函數(shù)
- 存款函數(shù)
- 取款函數(shù)
- 主菜單函數(shù)
程序啟動后要求輸入客戶姓名
查詢余額、存款,取款后都會返回主菜單
存款、取款后,都應顯示一下當前余額
客戶選擇退出或輸入錯誤,程序會退出,否則一直運行
詳細步驟
1.定義全局變量,輸入姓名
#定義全局變量 money = 500000 name = None #輸入姓名 name = input("請輸入您的姓名:")
2.定義查詢函數(shù)
#定義查詢函數(shù) def query(show_header): if show_header: print("------------查詢余額--------------") print(f"{name},您好,您所剩余額為{money}")
3.定義存款函數(shù)
#定義存款 def saving(num): global money money+=num print("------------存款--------------") print(f"{name},您好,您存入{money}成功") query()
4.定義取款函數(shù)
#定義取款 def get_money(num): global money money -= num print("------------取款--------------") print(f"{name},您好,您取出{num}成功") query()
5.定義主菜單
#定義主菜單 def main(): print("------------主菜單--------------") print(f"{name}您好,歡迎來到ATM,請選擇操作") print("查詢余額:輸入1") print("存款: 輸入2") print("取款: 輸入3") print("退出: 輸入4") return input("請輸入您的選擇:")
6.設置循環(huán),確保持續(xù)中途不退出
#設置循環(huán)確保程序中不退出 while True: keyboard_input = main() if keyboard_input=="1": query(True) continue elif keyboard_input=="2": num =int(input("您想存入多少錢:")) saving(num) continue elif keyboard_input=="3": num = int(input("您想取出多少錢:")) get_money(num) continue else: print("程序退出了!") break
運行結果
存在問題
但我們進行存款或者取款的時候,會調用查詢余額函數(shù),在查詢余額函數(shù)中會輸出這個:
但是,我只想這一print只在單獨調用查詢余額函數(shù)時才出現(xiàn),為實現(xiàn)這一目標那就需要就一個if判斷語句
改進
這樣運行結果就是
完整代碼
money = 500000 name = None #輸入姓名 name = input("請輸入您的姓名:") #定義查詢函數(shù) def query(show_header): if show_header: print("------------查詢余額--------------") print(f"{name},您好,您所剩余額為{money}") #定義存款 def saving(num): global money money+=num print("------------存款--------------") print(f"{name},您好,您存入{money}成功") query(False) #定義取款 def get_money(num): global money money -= num print("------------取款--------------") print(f"{name},您好,您取出{num}成功") query(False) #定義主菜單 def main(): print("------------主菜單--------------") print(f"{name}您好,歡迎來到ATM,請選擇操作") print("查詢余額:輸入1") print("存款: 輸入2") print("取款: 輸入3") print("退出: 輸入4") return input("請輸入您的選擇:") #設置循環(huán)確保程序中不退出 while True: keyboard_input = main() if keyboard_input=="1": query(True) continue elif keyboard_input=="2": num =int(input("您想存入多少錢:")) saving(num) continue elif keyboard_input=="3": num = int(input("您想取出多少錢:")) get_money(num) continue else: print("程序退出了!") break
到此這篇關于Python實現(xiàn)ATM簡單功能的示例詳解的文章就介紹到這了,更多相關Python ATM功能內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Python開發(fā)中爬蟲使用代理proxy抓取網(wǎng)頁的方法示例
這篇文章主要介紹了Python開發(fā)中爬蟲使用代理proxy抓取網(wǎng)頁的方法,結合具體實例形式分析了urllib模塊代理與requests模塊代理兩種實現(xiàn)技巧,需要的朋友可以參考下2017-09-09Python+Pygame實戰(zhàn)之24點游戲的實現(xiàn)
這篇文章主要為大家詳細介紹了如何利用Python和Pygame實現(xiàn)24點小游戲,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-04-04用Python3創(chuàng)建httpServer的簡單方法
今天小編就為大家分享一篇用Python3創(chuàng)建httpServer的簡單方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-06-06