修改代码以接受任何实数(整数或浮点数)

时间:2016-04-21 12:26:21

标签: python python-3.x floating-point integer

我可以弄清楚如何让这段代码接受浮点数和整数。

此代码的作用是:接受无限量的用户输入,必须为非负整数。当检测到空行时,输入结束。

代码;以升序打印列表。打印所有数字的总和,然后打印平均数。

代码:

nums = []
response = " "
total = 0

print("Type a positive integer: ")

while response != "":
    response = input()
    if response.isnumeric():
        nums.append(int(response))
        print("Next number: ")

    elif response == '':
        break    
    else:
        print("Error, you have to type a non-negative integer.")

nums.sort()

for item in nums:
    total = total + item
if nums != []:
    print("The numbers in order: ",nums)    
    print("Total number: ",total)
    print("The average is",sum(nums) / len(nums))
else:
    print("There are no numbers in the list")

4 个答案:

答案 0 :(得分:1)

该行:

nums.append(int(response))

将字符串输入转换为整数。只需将其更改为:

nums.append(float(response))

答案 1 :(得分:0)

如果您希望它采用整数以及浮点数,那么您需要完全删除强制转换:

nums.append(response)

答案 2 :(得分:0)

如果要将整数追加为int并将其浮动为float,则可以使用:

nums.append(float(response) if "." in number else int(response))

答案 3 :(得分:0)

float班级有.is_integer() function

buf = float(response)
if buf.is_integer():
    buf = int(buf)
nums.append(buf)