功能我希望能夠從英里改變距離的列表來公里,其中在代碼的下方位獲得英里的列表:字符串整數蟒蛇
input_string = input("Enter a list of distances, separated by spaces").strip()
要更改列表輸入到一個整數列表,我用:
distances = input_string.split()
print("This is what you entered: ")
for distance in distances:
print(distance)
def str2int(word):
"""Converts the list of string of miles into a list of integers of miles"""
integer = int(word)
if int(word):
return integer
else:
sys.exit("Please try again and enter a list of integers.")
def validate_all(distances):
"""
Checks if all the inputs are integers. If not all are integers, sys.exit
without converting any of the distances and ask to try again.
"""
true_list = []
for distance in distances:
if str2int(distance):
true_list.append(distance)
if len(distances) == len(true_list):
return True
else:
return False
print("And now, we are going to convert the first one to kilometers:")
miles = distances[0]
if validate_all:
# now, the calculation and display
kms = miles_int * KMPERMILE
print("The first distance you entered, in kilometers:", kms)
for i in range(1, len(distances), 1):
miles_int = str2int(distances[i])
kms = miles_int * KMPERMILE
print("The next distance you entered in kilometres:", kms)
但是,當我嘗試檢查,如果字符串列表中的所有元素都能夠變成一個整數(與validate_all(字))和有像
12 23 apples banana 5
我的輸入,程序崩潰說,有在
str2int(word)
-> if int(word):
我,而不是一個值誤差得到sys.exit
任何人都可以調試此我/得到這個適合我請?
你能發佈錯誤堆棧跟蹤嗎? – Christian