找回密码
 会员注册
查看: 19|回复: 0

在Python中从键盘读取用户输入

[复制链接]

3

主题

0

回帖

10

积分

新手上路

积分
10
发表于 2024-9-11 11:17:57 | 显示全部楼层 |阅读模式
文章目录如何在Python中从键盘读取用户输入input函数使用input读取键盘输入使用input读取特定类型的数据处理错误从用户输入中读取多个值getpass模块使用PyInputPlus自动执行用户输入评估总结如何在Python中从键盘读取用户输入原文《HowtoReadUserInputFromtheKeyboardinPython》input函数使用input读取键盘输入input是一个内置函数,将从输入中读取一行,并返回一个字符串(除了末尾的换行符)。例1:使用Input读取用户姓名name=input("你的名字:")print(f"你好,{name}")12'运行运行使用input读取特定类型的数据input默认返回字符串,如果需要读取其他类型的数据,需要使用类型转换。例2:读取用户年龄age=input("你的年龄:")print(type(age))#age=int(input("你的年龄:"))print(type(age))#12345处理错误如果用户输入的不是数字,int()将会抛出ValueError异常。>>>age=int(input("你的年龄:"))你的年龄:三十Traceback(mostrecentcalllast):...ValueError:invalidliteralforint()withbase10:'三十'12345使用try-except处理错误可以使程序更健壮。例3:用try-except处理用户输入错误whileTrue:try:age=int(input("你的年龄:"))exceptValueError:print("请使用数字输入你的年龄,例如24")else:breakprint(f"明年,你将{age+1}岁。")123456789'运行运行从用户输入中读取多个值有时用户需要输入多个值,可以使用split()方法将输入分割成多个值。例4:从用户输入中读取多个值user_colors=input("输入三种颜色,用,隔开:")#orange,purple,greencolors=[s.strip()forsinuser_colors.split(",")]print(f"颜色的列表为:{colors}")12345'运行运行getpass模块有时,程序需要隐藏用户的输入。例如,密码、API密钥甚至电子邮件地址等输入。可用标准库模块getpass实现。下面是一个验证用户邮箱的例子。例5:使用getpass隐藏用户输入importosimportgetpassdefverify_email(email):allowed_emails=[email.strip()foremailinos.getenv("ALLOWED_EMAILS").split(",")]returnemailinallowed_emailsdefmain():email=getpass.getpass("输入邮箱地址:")ifverify_email(email):print("有效的邮箱,通过。")else:print("无效的邮箱,拒绝。")if__name__=="__main__":main()123456789101112131415161718我们使用os.getenv获取环境变量ALLOWED_EMAILS,并使用getpass.getpass隐藏用户输入。为了设置环境变量,Windows用户可以在命令行或powershell中使用$env:命令。powershell设置环境变量-知乎设置当前会话的环境变量:$env:ALLOWED_EMAILS='info@example.com'1linux用户可以使用export命令。exportALLOWED_EMAILS=info@example.com1然后执行程序,输入邮箱地址,如果邮箱地址在环境变量中,程序将返回Emailisvalid.Youcanproceed.否则返回Incorrectemail.Accessdenied.使用PyInputPlus自动执行用户输入评估PyInputPlus包基于验证和重新提示用户输入而构建并增强input()。这是一个第三方包,可用pip安装。python-mpipinstallpyinputplus例6:使用PyInputPlus读取用户输入importpyinputplusaspyipage=pyip.inputInt(prompt="你的年龄:",min=0,max=120)print(f"你的年龄是{age}")1234注:这个包最后更新时间是2020年10月11日。例7:一个简单的交易程序importpyinputplusaspyipaccount_balance=1000print("欢迎来到REALBank")whileTrue:print(f"\n你的余额为:¥{account_balance}")transaction_type=pyip.inputChoice(["存钱","取钱","退出"])iftransaction_type=="退出":breakeliftransaction_type=="存钱":deposit_amount=pyip.inputInt(prompt="输入金额(最大¥10,000):¥",min=0,max=10000)account_balance+=deposit_amountprint(f"存入¥{deposit_amount}.")eliftransaction_type=="取钱":withdrawal_amount=pyip.inputInt(prompt="输入金额:¥",min=0,max=account_balance)account_balance-=withdrawal_amountprint(f"取出¥{withdrawal_amount}.")print("\n感谢选择REALBank。再见!")12345678910111213141516171819202122232425总结使用input函数读取用户输入使用getpass模块隐藏用户输入使用PyInputPlus包增强用户输入
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 会员注册

本版积分规则

QQ|手机版|心飞设计-版权所有:微度网络信息技术服务中心 ( 鲁ICP备17032091号-12 )|网站地图

GMT+8, 2024-12-31 06:13 , Processed in 0.481822 second(s), 26 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表