尝试制作一个为不同阶段提供价格的程序。在“tripss.txt”中,第三行是数字12,python将其解释为1和2,并给出每个的价格而不是数字作为一个整体,任何方式将其修改为它被读为12?。 / p>
infile = open("tripss.txt","r")
customer_one= infile.readline().strip("\n")
customer_two= infile.readline().strip("\n")
customer_three= infile.readline().strip("\n")
one_to_three_stages="euro 1.55"
four_to_seven_stages="euro 1.85"
seven_to_eleven_stages="euro 2.45"
more_than_eleven_stages="euro 2.85"
cheapest = ["1","2","3"]
cheap = ["4","5","6","7"]
expensive = ["7","8","9","10","11"]
for number in customer_three:
if number in cheapest:
print one_to_three_stages
elif number in cheap:
print four_to_seven_stages
elif number in expensive:
print seven_to_eleven_stages
else:
print more_than_eleven_stages
答案 0 :(得分:0)
在您的代码中,您似乎希望将customer_three视为字符串列表。但是在你的代码中它是一个字符串,而不是一个字符串列表,所以for循环迭代字符串的字符(“1”和“2”)。
所以我建议你替换:
customer_three= infile.readline().strip("\n")
with:
customer_three= infile.readline().strip("\n").split()
答案 1 :(得分:0)
你说第三行是数字12 所以在dplyr::slice
之后,customer_three= infile.readline().strip("\n")
将是字符串customer_three
。如果您随后启动for循环"12"
,则会为for number in customer_three:
分配字符串的每个元素 - 首先是number
,然后是"1"
。
解决方案很简单。 "2"
已经拥有了您想要的字符串。完全删除customer_three
循环。