網(wǎng)站首頁 編程語言 正文
一.局部變量、全局變量
1.什么是局部變量
作用范圍在函數(shù)內(nèi)部,在函數(shù)外部無法使用
2.什么是全局變量
在函數(shù)內(nèi)部和外部均可使用
3.如何將函數(shù)內(nèi)定義的變量聲明為全局變量
使用global關(guān)鍵字,global變量
二.global關(guān)鍵字
思考:
num=100
def testsA()
print(num)
def testB()
num=200
print(num)
testA() #結(jié)果:100
testB() #結(jié)果:200
print(f'全局變量num={num}') #結(jié)果:全局變量num=100
testB函數(shù)需要修改變量num的值為200,如何修改程序?
這時(shí)我們就需要把局部變量轉(zhuǎn)變?yōu)槿肿兞浚胓lobal關(guān)鍵字
演示
num = 200
def A():
print(f"A:{num}")
def B():
global num
num = 500
print(f"B:{num}")
A()
B()
print(num)
結(jié)果是
三.編寫ATM程序
要求
定義一個(gè)全局變量: money,用來記錄銀行卡余額(默認(rèn)5000000)
定義一個(gè)全局變量: name,用來記錄客戶姓名(啟動(dòng)程序時(shí)輸入)
定義如下的函數(shù):
- 查詢余額函數(shù)
- 存款函數(shù)
- 取款函數(shù)
- 主菜單函數(shù)
程序啟動(dòng)后要求輸入客戶姓名
查詢余額、存款,取款后都會(huì)返回主菜單
存款、取款后,都應(yīng)顯示一下當(dāng)前余額
客戶選擇退出或輸入錯(cuò)誤,程序會(huì)退出,否則一直運(yùn)行
詳細(xì)步驟
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.設(shè)置循環(huán),確保持續(xù)中途不退出
#設(shè)置循環(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
運(yùn)行結(jié)果
存在問題
但我們進(jìn)行存款或者取款的時(shí)候,會(huì)調(diào)用查詢余額函數(shù),在查詢余額函數(shù)中會(huì)輸出這個(gè):
但是,我只想這一print只在單獨(dú)調(diào)用查詢余額函數(shù)時(shí)才出現(xiàn),為實(shí)現(xiàn)這一目標(biāo)那就需要就一個(gè)if判斷語句
改進(jìn)
這樣運(yùn)行結(jié)果就是
完整代碼
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("請輸入您的選擇:")
#設(shè)置循環(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
原文鏈接:https://blog.csdn.net/weixin_63318044/article/details/128092565
相關(guān)推薦
- 2021-12-23 使用go?net實(shí)現(xiàn)簡單的redis通信協(xié)議_Golang
- 2022-08-18 go-spew調(diào)試?yán)髟斀鈅Golang
- 2023-02-06 詳解C#如何加密解密RAR文件_C#教程
- 2022-10-24 C#?Winform實(shí)現(xiàn)自定義漂亮的通知效果_C#教程
- 2023-10-27 react調(diào)用MATERIAL-UI的組件中使用componentWillReceiveProps或
- 2023-06-16 瞅一眼就能學(xué)會(huì)的GO并發(fā)編程使用教程_Golang
- 2023-03-05 Go語言學(xué)習(xí)之golang-jwt/jwt的教程分享_Golang
- 2022-07-12 Linux環(huán)境Jenkins部署
- 最近更新
-
- window11 系統(tǒng)安裝 yarn
- 超詳細(xì)win安裝深度學(xué)習(xí)環(huán)境2025年最新版(
- Linux 中運(yùn)行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲(chǔ)小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎(chǔ)操作-- 運(yùn)算符,流程控制 Flo
- 1. Int 和Integer 的區(qū)別,Jav
- spring @retryable不生效的一種
- Spring Security之認(rèn)證信息的處理
- Spring Security之認(rèn)證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權(quán)
- redisson分布式鎖中waittime的設(shè)
- maven:解決release錯(cuò)誤:Artif
- restTemplate使用總結(jié)
- Spring Security之安全異常處理
- MybatisPlus優(yōu)雅實(shí)現(xiàn)加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務(wù)發(fā)現(xiàn)-Nac
- Spring Security之基于HttpR
- Redis 底層數(shù)據(jù)結(jié)構(gòu)-簡單動(dòng)態(tài)字符串(SD
- arthas操作spring被代理目標(biāo)對象命令
- Spring中的單例模式應(yīng)用詳解
- 聊聊消息隊(duì)列,發(fā)送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠(yuǎn)程分支