提问人:Steve 提问时间:2/17/2023 最后编辑:DjaouadNMSteve 更新时间:2/18/2023 访问量:35
Python- 将经过验证的变量从函数返回到主程序
Python- Return a verified variable from a function to the main program
问:
任何人都可以指导我一个示例,其中可以将用户输入变量发送到检查函数或模块并返回经过验证的输入,分配/更新初始化的变量?我正在尝试重新创建我多年前在 C++ 中所做的一些事情,我正在尝试验证一个整数!在这种特殊情况下,建筑框架连接中输入的螺栓数量是这样的。任何方向都将不胜感激,因为我的互联网搜索和搜索我的 Python A Crash Course 副本尚未提供任何信息!非常感谢有人会对 Python 新手感到仁慈! 问候史蒂夫
下面是我对此的无数次尝试之一,真的我只想放弃并使用 While 和函数调用。在这个中,显然我不允许在 str 和 int 之间放置 >(第 4 行),这破坏了我强迫 N 为 int 的尝试 - 倒数第二行!
def int_val(N):
#checks
# check 1. n > 0 for real entries
N > 0
isinstance(N, int)
N=N
return N
print("N not ok enter again")
#N = input("Input N the Number of bolts ")
# Initialiase N=0
#N = 0
# Enter the number of bolts
N = input("Input N the Number of bolts ")
int_val(N)
print("no of bolts is", N)
答:
0赞
rhurwitz
2/17/2023
#1
你有什么想法吗?它利用了这样一个事实,即如果可能,使用内置函数会将字符串转换为整数,否则会抛出 .int
ValueError
def str_to_posint(s):
"""Return value if converted and greater than zero else None."""
try:
num = int(s)
return num if num > 0 else None
except ValueError:
return None
while True:
s = input("Enter number of bolts: ")
if num_bolts := str_to_posint(s):
break
print(f"Sorry, \"{s}\" is not a valid number of bolts.")
print(f"{num_bolts = }")
输出:
Enter number of bolts: twenty
Sorry, "twenty" is not a valid number of bolts.
Enter number of bolts: 20
num_bolts = 20
评论
0赞
Steve
2/18/2023
完美效果真的很好,谢谢!我在这里学到了一些新命令!祝一切顺利的史蒂夫
0赞
rhurwitz
2/21/2023
很高兴听到它!当你有机会时,请继续接受答案,以便可以关闭问题。
0赞
Steve
2/18/2023
#2
定义str_to_posint: “”“如果转换且大于零,则返回值 None 尝试: num = 整数 return num if num > 0 else None 除了 ValueError: 返回 无
而 True: s = input(“输入螺栓数量:”) 如果num_bolts := str_to_posint: 破 print(f“对不起,”{s}“不是有效的螺栓数。
打印(f“{num_bolts = }”)
评论