python初学者,写作业时发现
s = "abc123ABC"
t = ""
for i in s:
if i.islower():
t += i.upper()
elif i.isupper():
t += i.lower()
else:
t += i
t += "i"
print(t)
输出结果为ABC123abc
删除i.islower()的括号,输出结果为ABC123ABC
删除i.isupper()的括号,输出结果为ABC123abc
为什么会出现这种情况?以上两处括号有什么作用?还请大佬解惑
在Python中,.isupper()和.islower()是字符串对象的方法,用于检查字符串中的字符是否都是大写或小写字母。当你使用这些方法时,不带括号也能正常运行,这是因为Python中的方法可以被视为属性,你可以直接访问它们而不需要使用括号来调用。
所以,你可以这样写:
python
Copy code
if i.islower:
# do something
或者:
python
Copy code
if i.isupper:
# do something
这两种写法都是合法的,并且与带括号的写法效果相同。
至于你的代码中删除了括号之后的现象,是因为你的代码中的if条件在检查.islower或.isupper这些方法是否存在,而不是调用它们。因为这些方法是存在的,所以条件始终为真,导致了不同的输出结果。
换句话说,括号在这里的作用是调用方法,而不是检查方法是否存在。
删除方法的括号后,将会变成方法是否存在的判断
删除i.islower()的括号
相当于
if True:
elif i.isupper():
删除i.isupper()的括号
相当于
if i.islower():
elif True: