我是Python的新手,所以这对这里的许多人来说可能是一个愚蠢的问题。我正在创建一个程序,读取数字,直到用户数字“完成”。当用户数字“完成”时,程序将可视化总数、计数和平均值。如果用户没有插入数字,那么程序必须可视化一条错误消息。我试着写代码:
while True:
try:
numbers = input('Enter a number: ')
if numbers == 'done':
break
except:
print ('bad data')
到目前为止,我还没有考虑总数、计数和平均值。我想了解如何在input()中处理“数字”和“字符串”。因为在我的代码中,错误是关于"except“
发布于 2020-03-28 12:52:32
谢谢你的question.No问题是下面的dumb.Please检查代码片段
发布于 2020-03-28 12:55:54
如果字符串表示一个数字,则String.isnumeric()返回true。它允许你过滤你的输入中的数字。
numbers = '123'
numbers.isnumeric()
-> returns true
numbers = '123asd'
numbers.isnumeric()
-> returns false
标识数字后,可以使用以下命令将其转换为数字
float(numbers) // is now of type float (if numbers represents in fact a float)
发布于 2020-03-28 13:00:46
这对你来说应该是可行的。input()-function返回一个字符串,因此为了使用输入进行计算,必须将其转换为数值数据类型(如整型或浮点型)。如果您输入了无法转换为此数据类型的内容,则except-子句会捕获错误。
sum = 0
count = 0
while True:
numbers = input('Enter a number: ')
if numbers == "done":
break
try:
numbers = float(numbers)
sum += numbers
count += 1
except:
print("bad data, try again.")
# print values after while-loop
print()
print("Total:", sum)
print("You entered", count, "values.")
print("Average:", sum/count)
https://stackoverflow.com/questions/60901304
复制相似问题