首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我的for循环不允许我增加迭代器变量-Python2.7

我的for循环不允许我增加迭代器变量-Python2.7
EN

Stack Overflow用户
提问于 2022-11-27 11:13:20
回答 1查看 22关注 0票数 0

大家好,

新来的。我正在编写这个函数,它在技术上是可行的,但我仍然希望"i“在每个循环上增加1,但它不会让它增加。每个循环只需要一个参数。如果我更改变量名"i“-> "it",则won语句甚至不会开始。

**提前感谢你对此保持冷静!**

`

代码语言:javascript
复制
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")

`

它可以工作,但是迭代器变量不会在每个循环中增加。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-11-27 11:26:36

我不确定这是否是你想打印的,但让我试试看:(我假设你想打印盲文图案)

首先,您犯了错误,在while循环中使用i作为索引,但在s中也使用i作为索引。

然后,您也无法在while循环中增加i。

还为每一个新的while循环添加换行符:

这是我的代码(请检查):

代码语言:javascript
复制
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")

我的跑步结果:

代码语言:javascript
复制
110010100010111000111000101010
110010100010111000111000101010
110010100010111000111000101010
110010100010111000111000101010
110010100010111000111000101010

这是你想打印的图案吗?

如果你只想打印一次盲文图案,那么你就不需要then循环了。for循环就足够了:

代码语言:javascript
复制
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")

然后输出将是:

代码语言:javascript
复制
110010100010111000111000101010
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74589530

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档