原本想用print打印出一列列表,输出时遇到
SyntaxError: EOL while scanning string literal
EOL:end of line(行尾误差)
由于前后符号不一致或者不符合结构而造成的错误。
这样的报错,因为输入结构为:
print(‘ ’)
中间为多行数据序列。
后来经过修改发现print()函数输出,引号对应有三种形式:
‘ ’-----单引号,“ ”-----双引号,''' '''-----三引号
而这三种对应的形式对应不同的内容输出,前两种可以适用于单行情况,而三引号可以跨行输出,因此,适合于列表的输出,后将函数改为如下形式:
print(''' 车次 出发站—到达站 出发时间 到达时间 历时 T40 长春—北京 00:12 12:20 12:08 T298 长春—北京 00:06 10:50 10:44 Z158 长春—北京 12:48 21:06 08:18 Z62 长春—北京 21:58 06:08 8:20 ''')
遂解决报错。
解法二:元组
#检车是否有该车次的方法 def check train_number(string): #检查某个元素是否是列表的成员 这里检查输入的车次是否包含在车次系列中 if string in train_numbers: #包含在车次系列中推出方法 return string else: #输出不包含在车次系列中,提示用户再次输入 y = input("没有该车次,请重新输入要购买的车次:") return check_train_number(y) type = ["车次",'出发站-到达站','出发时间','到达时间','历时'] #车次列表 train_numbers = ['T40','T298','Z158','Z62'] depart_arrive = ['长春-北京','长春-北京','长春-北京','长春-北京'] depart_time = ['00:12','00:06','12:48','21:58'] arrive_time = ['12:20','10:50','21:06','06:08'] duration = ['12:08','10:44','08:18','8:20']
原题目以及答案代码附上:
序列模拟火车订票系统:
print(''' 车次 出发站—到达站 出发时间 到达时间 历时 T40 长春—北京 00:12 12:20 12:08 T298 长春—北京 00:06 10:50 10:44 Z158 长春—北京 12:48 21:06 08:18 Z62 长春—北京 21:58 06:08 8:20 ''') key = input("请输入要购买的车次:") name = input("请输入乘车人(用逗号分隔)") system = {"T40":"长春—北京 00:12","T298":"长春—北京 00:06","Z158":"长春—北京 12:46", "Z62":"长春—北京 21:56"} print("您已购买 ",key," 次列车 ",system[key],"开,请",name,"尽快换取纸质车票。【铁路客服】")
元组列表组合排序:
name = [('1.4','《Give up,hold on to me》'), ('1.343','《The private dishes of the husbands》'), ('0.92','《My father-in-law will do martiaiarts》'), ('0.862','《North Canton still believe in love》'), ('0.553','《Impossible task》'), ('0.411','《Sparrow》'), ('0.164','《East of dream Avenue》'), ('0.259','《The prodigal son of the new frontier town》'), ('0.394','《Distant distance》'), ('0.562','《Music legend》')] name.sort(reverse=True) print("电视剧的收视率排行榜:") for item in name: print(item[1],"收视率:",item[0],"%")
参考网页: