大家好,
新来的。我正在编写这个函数,它在技术上是可行的,但我仍然希望"i“在每个循环上增加1,但它不会让它增加。每个循环只需要一个参数。如果我更改变量名"i“-> "it",则won语句甚至不会开始。
**提前感谢你对此保持冷静!**
`
def solution(s):
i = 0
m = ""
braille = {
" " : "000000",
"^" : "000001",
"a" : "100000",
"b" : "110000",
"c" : "100100",
"d" : "100110",
"e" : "100010",
"f" : "110100",
"g" : "110110",
"h" : "110010",
"i" : "010100",
"j" : "010110",
"k" : "101000",
"l" : "111000",
"m" : "101100",
"n" : "101110",
"o" : "101010",
"p" : "111100",
"q" : "111110",
"r" : "111010",
"s" : "011100",
"t" : "011110",
"u" : "101001",
"v" : "111001",
"w" : "010111",
"x" : "101101",
"y" : "101111",
"z" : "101011"
}
while i < len(s):
for i in s:
if i.isupper() == True:
m += braille["^"]+braille[i.lower()]
else:
m += braille[i]
print(m)
solution("hello")`
它可以工作,但是迭代器变量不会在每个循环中增加。
发布于 2022-11-27 11:26:36
我不确定这是否是你想打印的,但让我试试看:(我假设你想打印盲文图案)
首先,您犯了错误,在while循环中使用i作为索引,但在s中也使用i作为索引。
然后,您也无法在while循环中增加i。
还为每一个新的while循环添加换行符:
这是我的代码(请检查):
def solution(s):
i = 0
m = ""
braille = {
" " : "000000",
"^" : "000001",
"a" : "100000",
"b" : "110000",
"c" : "100100",
"d" : "100110",
"e" : "100010",
"f" : "110100",
"g" : "110110",
"h" : "110010",
"i" : "010100",
"j" : "010110",
"k" : "101000",
"l" : "111000",
"m" : "101100",
"n" : "101110",
"o" : "101010",
"p" : "111100",
"q" : "111110",
"r" : "111010",
"s" : "011100",
"t" : "011110",
"u" : "101001",
"v" : "111001",
"w" : "010111",
"x" : "101101",
"y" : "101111",
"z" : "101011"
}
while i < len(s):
m += '\n' # add new line for the next part of the print
for k in s: # change i to k as index in for loop
if k.isupper() == True:
m += braille["^"]+braille[k.lower()]
else:
m += braille[k]
i += 1 # increment the i for the while loop
print(m)
solution("hello")我的跑步结果:
110010100010111000111000101010
110010100010111000111000101010
110010100010111000111000101010
110010100010111000111000101010
110010100010111000111000101010这是你想打印的图案吗?
如果你只想打印一次盲文图案,那么你就不需要then循环了。for循环就足够了:
def solution(s):
i = 0
m = ""
braille = {
" " : "000000",
"^" : "000001",
"a" : "100000",
"b" : "110000",
"c" : "100100",
"d" : "100110",
"e" : "100010",
"f" : "110100",
"g" : "110110",
"h" : "110010",
"i" : "010100",
"j" : "010110",
"k" : "101000",
"l" : "111000",
"m" : "101100",
"n" : "101110",
"o" : "101010",
"p" : "111100",
"q" : "111110",
"r" : "111010",
"s" : "011100",
"t" : "011110",
"u" : "101001",
"v" : "111001",
"w" : "010111",
"x" : "101101",
"y" : "101111",
"z" : "101011"
}
for k in s: # change i to k as index in for loop
if k.isupper() == True:
m += braille["^"]+braille[k.lower()]
else:
m += braille[k]
print(m)
solution("hello")然后输出将是:
110010100010111000111000101010https://stackoverflow.com/questions/74589530
复制相似问题