如何在不修改原始字符串的情况下将.islower()用于if语句

时间:2018-11-30 20:01:41

标签: python python-3.x python-2.7

我得到了一个包含字符串“ Hello”的变量x。我检查.islower()是否为小写字母,然后尝试使用.islower的输出(真或假)使字符串全部小写(如果不是)。

问题是:最初x包含字符串“ Hello”,但是在使用.islower()检查它之后,Hello正在丢失,并且x现在包含“ True”或“ False”。我不希望x的原始内容丢失。

Print(x)打印False而不是“ hello”

x = "Hello".islower()
print(f'x is {x}')
if x == False:
        #return x.lower()
    print("its not all lower case")
    print(x)

我想到了这个解决方案:

我有包含字符串“ Hello”的变量x。 我将变量X的内容复制到变量Y中。 变量x将保留原始数据(字符串),变量y仅用于检查是否为小写字母,并使用if语句,然后以小写形式输出y。

#!/usr/bin/env python3

x = "Hello"
x = y
y.islower()
print(f'x is {x}')
if y == False:
    print("¨its not all lower case")
    print(x).lower()
else:
    print(x)

问题不起作用:

x = y 

我尝试对其进行测试,并且y不会显示“ Hello”

x = "Hello"
y = x
print(y)

NameError: name 'y' is not defined

我也怀疑这是否有效:

y.islower()

我有印象,您只能使用.islower()

什么是正确正确的方法?

2 个答案:

答案 0 :(得分:1)

如果您的目标是将字符串转换为小写,则无条件使用.lower()

如果您要根据字符串是否为小写来执行其他操作,请尝试以下操作:

if x.islower():
    print("lowercase")
else:
    print("uppercase")
    x = x.lower()

答案 1 :(得分:0)

问题已解决,非常感谢所有回答该问题的人:

    正如Martijn Pieters指出的,
  1. x = y不起作用。 但是除了这样做,我们可以简单地做到这一点:y=(x.islower()),因为我们只希望y包含x的小写字母是否为问题的答案

  2. 我已经看过像print(x).lower()这样写的示例,但是它似乎没有用。 print(x.lower())就是答案

此代码有效,因此无论是否以小写形式打印。它会检测出是否存在错误并进行纠正,或者以小写形式将其打印出来。

    #!/usr/bin/env python3

    x = "Hello"
    y=(x.islower())
    print(f"x is {x}")
    if y == False:
        print("its not all lower case")
        print(x.lower())
    else:
        print(x)

这是已解决代码的另一个示例:

#!/usr/bin/env python3

x = input("Please enter a word:  ")
y=(x.islower())
print(f"Your word is {x}")
if y == False:
    print("Your word is not all in lower case, lett me correct it for you")
    print(x.lower())
else:
     print(x)

这也是一个选择。 Thx所罗门:

#!/usr/bin/env python3

x = input("Please enter a word:  ")
print(f"Your word is {x}")
if x.islower():
    print("x is all low")
else:
    print("Your word is not all in lower case, lett me correct it for you")
    print(x.lower())
    x = x.lower()