Python 3中如何获取多个带自定义名称的输入?
批量生成带命名的输入变量
嘿,我懂你的需求——不想手动写一堆number1 = int(input(...))这种重复代码,希望能自动生成带编号的独立变量,方便后续用if语句做比较,对吧?下面给你两种实用的方法:
方法1:直接生成独立变量(适合小场景)
你可以利用Python的globals()函数,它能直接操作全局命名空间,动态创建变量名。代码示例如下:
# 先问用户要输入多少个数字 count = int(input("请输入要录入的数字个数:")) # 循环生成number1、number2...numberN for i in range(1, count + 1): var_name = f"number{i}" # 给对应的变量赋值,转换为整数类型 globals()[var_name] = int(input(f"请输入第{i}个数字:"))
运行这段代码后,你就能直接用number1、number2这些变量名了,比如:
if number1 > number2: print("第一个数字比第二个大")
⚠️ 小提醒:这种方法虽然直接,但如果变量数量太多,会让全局命名空间变得混乱,所以更适合小型脚本或者临时场景。
方法2:用字典存储(更规范的做法)
其实在Python里,更推荐用字典来管理这类批量生成的变量,既整洁又容易维护,虽然不是直接的独立变量名,但可以通过键名来访问,效果一样:
count = int(input("请输入要录入的数字个数:")) number_dict = {} for i in range(1, count + 1): key = f"number{i}" number_dict[key] = int(input(f"请输入第{i}个数字:"))
之后要比较的话,可以这样写:
if number_dict["number1"] > number_dict["number2"]: print("第一个数字比第二个大")
这种方式不会污染全局命名空间,而且后续要遍历、修改这些数字也更方便,是Python开发中的最佳实践哦。
另外补充一下,你之前尝试的a,b=map(input().split())是用来拆分同一行输入的多个值,和你要的逐个提示输入带命名变量的场景不太匹配,上面的两种方法刚好能解决你的需求~
内容的提问来源于stack exchange,提问作者Jana Ruhrländer
相关产品推荐
相关产品推荐

