【发布时间】:2021-06-12 05:29:41
【问题描述】:
我是 python 新手,我有一个任务要编写一个程序,提示用户输入一组以空格分隔的正整数 ????????0, ???????? 1, ... , ??????????????????−1。然后程序只读取和存储正整数并忽略任何无效条目
然后,您的程序应该计算减少每个数字的步骤 ????????????????使用这些规则到 0: • 如果是偶数,则除以 2 • 如果数字是奇数,则减1
例如,减少数字 10:
- 10是偶数,10除以2,就是5
- 5 为奇数,5 减 1,变为 4 - 4 为偶数,4 除以 2,变为 2
- 2是偶数,2除以2,就变成了1
- 1为奇数,1减1,变为0 因此,需要 5 个步骤才能将 10 减少到 0。
到目前为止的代码中,我可以输入一个条目,但我需要多个用空格分隔的条目。
stringInput = input("Enter integers: ")
try:
for e in stringInput:
listOfintegers = []
stepsCount = 0
integerInput = int(stringInput)
integerToTest = integerInput
while integerToTest > 0:
if integerToTest % 2 == 0:
integerToTest /= 2
else:
integerToTest -= 1
stepsCount += 1
listOfintegers.append((integerInput, stepsCount))
except:
print("a string was entered")
exit(1)
print(listOfintegers)
应该是这样的: 请输入一组以空格分隔的正整数:3 45 st 59 16 32 89
输出:
[(3, 3), (45, 9), (59, 10), (16, 5), (32, 6), (89, 10)]
你能帮帮我吗?
【问题讨论】:
标签: python python-3.x loops validation input