【发布时间】:2021-11-11 16:27:07
【问题描述】:
问题
WRITE 一个代码,用于检查“N”个英文单词的列表是否可以仅使用键盘的一行来书写。如果是这种情况,请制作一个包含“真”或“假”选项的列表。
输入:
第一行必须读取'N'的值。 第二行往下读“N”字
例子:如果 N = 3 那么英文单词列表是 [POTTER, EQUITY, LIRIL] 那么输出是 [True, True, False]
我的代码
N=int(input("enter number of elements: "))
words=input("enter the words separated by a space: ")
wl=words.split()
print("list of words is" , wl)
l2=[]
final=[]
a=['q','w','e','r','t','y','u','i','o','p']
if N<0:
print("Invalid Input")
else:
for i in range(0,N):
ele=wl[i]
l2.append(ele)
new=ele.split()
if new <=a:
re1='True'
final.append(re1)
else:
re2='False'
final.append(re2)
print(final)
最终列表显示真实,即使使用了键盘其他行的字母。谁能指出我的错误在哪里并帮助我修复此代码?
【问题讨论】:
-
new <= a是一个奇怪的比较。想想看。但是一个问题:你的键盘不止一排,对吧?这段代码只看一个...还要考虑大小写字母的比较... -
其中有多个问题,很难说出你认为事情会发生什么,这就是为什么很难说出你是如何犯错误的。例如,在定义
new之后添加print(new)。split会按照你的想法做吗?另一个问题,正如 trincot 已经指出的那样:你认为new <= a比较什么以及如何比较?此时new和a是什么? -
你很有可能。可以在问题陈述中清楚地说明
rule。甚至我们可以看看我们的键盘并弄清楚这一点! ;-) -
另外请注意
'True'和'False'与True和False不同。具有讽刺意味的是,'False'是一个始终计算为True的字符串。 -
@DanielHao 我完全误读了这个问题,因为“'N'个英文单词的列表只能用键盘的第一行写出来”,后来才意识到????
标签: python list for-loop set tuples