这是我程序的一部分。它的工作是获取一个字符串,并将每个单词与字母表进行比较,如果一个字母与字母表中的一个匹配,它将打印出该字母。但是,该程序似乎忽略了我的打印命令,并继续执行其他操作,从而使输出为空。
x = "DEWIOCJWO"
alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
m = 0
for i in range(len(x)):
if x[i] == alphabet[m]:
print(alphabet[m])
m = 0
break
else:
m = m + 1
continue
答案 0 :(得分:0)
如果x和字母的长度不同,则可以使用:
x = "DEWIOCJWO"
alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
for i in range(min((len(x),len(alphabet))):
if x[i] == alphabet[i]:
print(x[i])
答案 1 :(得分:0)
使用此代码:
x = "DEWIOCJWO"
alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
for i in range(len(x)):
if x[i] in alphabet:
print(x[i] )
else:
continue
您通过比较字母(m)犯了错误,因为m每次都在增加
因此,您没有用于打印的匹配项
因此,使用in
来查找字符串是否包含字母和print(x[i])
以便打印匹配字母的字符
答案 2 :(得分:0)
如果要保持当前的逻辑,则需要第二个for循环才能正确地迭代字母。例如
float MyBuffer::getAverage(std::deque<float> input, int numberOfBuffers)
一种更干净的方法是使用正则表达式。
for i in range(len(x)):
for m in range(len(alphabet)):
if x[i] == alphabet[m]:
print(alphabet[m])
break
答案 3 :(得分:0)
您仅在检查x中的字符是否等于'A'
您可以使用:
x = "DEWIOCJWO"
alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
print(*[c for c in x if c in alphabet])
输出:
D E W I O C J W O
答案 4 :(得分:0)
for X in x:
if X in alphabet: print(X)
或
print(*[X for X in x if X in alphabet])
或
print(' '.join([X for X in x if X in alphabet]))
所有内容都能满足您的要求(在x字母中打印字母)
答案 5 :(得分:0)
如果只希望在输入字符串中打印大写字母,则此表达式可能会这样做:
import re
print(re.findall('[A-Z]', "DEWIOCJWO"))
['D', 'E', 'W', 'I', 'O', 'C', 'J', 'W', 'O']
您也可以数:
import re
print(len(re.findall('[A-Z]', "DEWIOCJWO")))
将显示9
。