字符串值与输入的值发生变化

问题描述 投票:0回答:2

我正在编写一个代码,要求用户输入一个字符串,然后输入一个字符,它会计算字符串中有多少个字符。由于某种原因,我的角色与输入的角色不同。

    value = input("Input a string: ")
    char = str(input("Input a character to count: "))
    count = 0
    for char in value:
        count += 1
    print(f"The character '{char}' appears {count} times.")
python string input
2个回答
1
投票

您的循环已将

char
绑定到与原始输入不同的值。该名称对于循环来说不是“本地”的。我们可以通过一个简单的测试来看到这一点。

>>> a = [1,2,3]
>>> for a in a: pass
...
>>> a
3

简单的解决方案:更改名称。

您也没有测试每个角色是否是您正在寻找的角色。

不需要将

input
的结果转换为字符串。已经是了。

    value = input("Input a string: ")
    char = input("Input a character to count: ")
    count = 0
    for ch in value:
        if ch == char:
            count += 1
    print(f"The character '{char}' appears {count} times.")

0
投票

您正在覆盖每次循环迭代的 char 值。此代码将按您的预期运行:

value = input("Input a string: ")
char = input("Input a character to count: ")[0]
count = 0
for c in value:
    if c == char:
        count += 1
print(f"The character '{char}' appears {count} times.")
© www.soinside.com 2019 - 2024. All rights reserved.