该代码的想法是阻止用户多次单击撤消按钮。 这让我感到If PreviousLastRow = LastRow Then的具体部分是If PreviousLastRow = LastRow Then似乎被忽略并始终遵循 else 路径,即使我知道这两个变体是相同的 这是否与代码中看到的两个数字不同 ...
提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供 中文繁体 英文版本 中英对照 版本,有任何建议请联系yoyou2525@163.com。
这是我的代码:
bookings = ['blue,red', 'green,orange', 'yellow, purple']
number = 0
b = 0
c = 1
file_test = open('test_1.txt' , 'wt')
results_song = []
for item in bookings:
words = bookings[number].split(',')
results_song.append(words[0])
results_song.append(words[1])
number = number + 1
results_song_str = '\n'.join(results_song)
print(results_song_str)
file_test.write(results_song_str)
file_test.close()
file_test = open('test_1.txt' , 'r')
line = file_test.readlines()
for item in bookings:
line_1 = line[b]
line_2 = line[c]
answer = input('If first word is then what is the second word')
if answer == line_2:
print('correct')
else:
print('wrong')
b = b + 2
c = c + 2
但是,代码无法识别答案是否等于line_2
。 我无法弄清楚为什么会这样。 我检查过c
是正确的数字,而line_2
与答案相同。 但是我确实注意到当我在打印answer和line_2
时运行代码时会返回:
red
red
但我从来没有在这里添加新的线路功能。
我非常感谢任何帮助,因为我需要将此代码用于学校作业。
通过打印进行调试
# ...
for item in bookings:
line_1 = line[b]
line_2 = line[c]
print("Your Answer:", repr(answer))
print("Actual Answer:", repr(line_2))
# ...
给
Your Answer: 'red'
Actual Answer: 'red\n'
啊哈! 一个偷偷摸摸的换行符! 好像当程序从文件中读取文本并拆分行时,它会为您保存换行符。 多么甜蜜烦人。 :|
要删除它,可以使用str.replace()
方法
# ...
for _ in range(len(bookings)): # I took the freedom to modify the loop conditions
line_1 = line[b].replace('\n','')
line_2 = line[c].replace('\n','')
# ...
或者更改从文件中读取行的方式,使用str.split()
方法手动拆分行
# ...
with open('test_1.txt' , 'r') as file_test:
line = file_test.read().split('\n')
for _ in range(len(bookings)):
line_1 = line[b]
line_2 = line[c]
# ...
感谢@ juanpa.arrivillaga建议使用repr()
来检查值。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.