gpt4 book ai didi

Python 输入验证 - 接受正 float 或整数

转载 作者:行者123 更新时间:2023-12-01 09:17:46 25 4
gpt4 key购买 nike

似乎我们要求很多,但我们正在寻求对作为输入输入的正 int 或 float 进行简短验证。下面的代码拒绝负数、文本和空条目 - 耶!它接受 int 为有效,但为什么像 1.1 这样的条目不通过? (看似正数条目)我们希望正数 1 和 1.1 的条目通过。有没有一种简单的方法,不需要两个单独的 block ,包括 try/catch?

bookPrice = input("What is the cost of your book? >> ")
while bookPrice.isnumeric() is False or float(bookPrice) < 0:
bookPrice = input("Use whole # or decimal, no spaces: >> ")
bookPrice = float(bookPrice)
print("Your book price is ${0:<.2f}.".format(bookPrice))

最佳答案

isnumeric() 正在检查所有字符是否都是数字(例如 1、2、100...)。

如果你放了一个“.”在输入中,它不计为数字字符,“-”也不计为数字字符,因此返回 False

我要做的就是尝试将输入转换为浮点,并解决错误的输入。您可以使用isinstance() ,但为此您需要将输入转换为 字符串 之外的其他内容。

我想出了这个:

message = "What is the cost of your book? >>"
while True:
bookPrice = input(message)
try:
bookPrice = float(bookPrice)

if bookPrice <= 0:
message = "Use whole # or decimal, no spaces: >> "
continue
currect_user_input = True

except ValueError:
currect_user_input = False
message = "Use whole # or decimal, no spaces: >> "

if currect_user_input:
print("Your book price is ${0:<.2f}.".format(bookPrice))
break

关于Python 输入验证 - 接受正 float 或整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51086375/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com