用于在Python中打印Int值的更干净的代码
我有一段代码要求用户年龄。用户的输入类型为用于在Python中打印Int值的更干净的代码,python,printing,int,Python,Printing,Int,我有一段代码要求用户年龄。用户的输入类型为int。此外,如果用户不想输入任何内容,可以按“回车”退出程序(如下所示): 但是,当我只按Enter键时,会出现以下错误: Traceback (most recent call last): File "C:/Users/test/PycharmProjects/exceptions/testinput.py", line 2, in <module> answer = int(input()) ValueError: inv
int
。此外,如果用户不想输入任何内容,可以按“回车”退出程序(如下所示):
但是,当我只按Enter键时,会出现以下错误:
Traceback (most recent call last):
File "C:/Users/test/PycharmProjects/exceptions/testinput.py", line 2, in <module>
answer = int(input())
ValueError: invalid literal for int() with base 10: ''
Process finished with exit code 1
我的问题是,除了一个
try
块之外,是否有其他方法可以打印int
类型的空白值?当然:在转换为int之前检查输入:
answer = input("What is your age? ")
if answer == '':
print("Don't want to disclose? That's fine.")
else:
...
当然:在转换为int之前检查输入:
answer = input("What is your age? ")
if answer == '':
print("Don't want to disclose? That's fine.")
else:
...
我将从
int
函数中删除input
调用
print(“您的年龄是多少?”)
答案=输入()
回答=int(回答),如果回答其他无
如果不回答:打印(“不想透露?没关系。”)
我将从int
函数中删除输入
调用
print(“您的年龄是多少?”)
答案=输入()
回答=int(回答),如果回答其他无
如果不回答:打印(“不想透露?没关系。”)
另一种方法是三思而后行,使用if-else
,并在else
内部进行int
转换:
answer = input("What is your age?")
if answer == "":
print("Don't want to disclose? That's fine.")
else:
answer = int(answer)
<>但是现在你需要考虑如果<代码>回答<代码>是有效的整数构成字符串,例如,如果用户输入<代码> FoBoA怎么办?(提示:现在您还需要使用str.isdecimal
或类似的方法进行检查)。另一种方法是三思而后行,使用if-else
并在else
内部进行int
转换:
answer = input("What is your age?")
if answer == "":
print("Don't want to disclose? That's fine.")
else:
answer = int(answer)
<>但是现在你需要考虑如果<代码>回答<代码>是有效的整数构成字符串,例如,如果用户输入<代码> FoBoA怎么办?(提示:现在您还需要使用
str.isdecimal
或类似方法进行检查)。输入函数将输入转换为字符串
,如中所述
输入([prompt])如果存在prompt参数,则会将其写入
不带尾随换行符的标准输出。然后,该函数读取
从输入中删除行,将其转换为字符串(删除尾随字符)
newline),并返回该值。读取EOF时,EOFError升高
因此,当您不输入任何内容时,您试图将字符串('
)转换为int-type,类似于int('xyz')
,因此会得到一个值错误异常
ValueError:基数为10的int()的文本无效:“xyz”
如果包含在字符串中的数字
类型,例如int('2')
,则其类型转换良好
您或许可以这样做:
print("What is your age?")
answer = input()
if answer == '':
print("Don't want to disclose? That's fine.")
else:
int(answer)
输入函数将输入转换为
字符串
,如中所述
输入([prompt])如果存在prompt参数,则会将其写入
不带尾随换行符的标准输出。然后,该函数读取
从输入中删除行,将其转换为字符串(删除尾随字符)
newline),并返回该值。读取EOF时,EOFError升高
因此,当您不输入任何内容时,您试图将字符串('
)转换为int-type,类似于int('xyz')
,因此会得到一个值错误异常
ValueError:基数为10的int()的文本无效:“xyz”
如果包含在字符串中的数字
类型,例如int('2')
,则其类型转换良好
您或许可以这样做:
print("What is your age?")
answer = input()
if answer == '':
print("Don't want to disclose? That's fine.")
else:
int(answer)
这个逻辑是多余的,因为你已经检查了两次
answer
。你是对的@Prune。事先打印语句的逻辑也很糟糕。逻辑是多余的,因为你已经检查了两次answer
。你是对的@Prune。事先打印语句的逻辑也很糟糕。