实现功能:
对于给定的由可见字符和空格组成的字符串,按照下方的规则进行排序:
直接输出排序后的字符串。
python展开代码while True:
try:
s = input()
a = ''
for i in s:
if i.isalpha():
a += i
b = sorted(a, key=str.upper)
index = 0
d = ''
for i in range(len(s)):
if s[i].isalpha():
d += b[index]
index += 1
else:
d += s[i]
print(d)
except:
break
python展开代码while True:
try:
s=input()
a=""
for i in s:
if i.isalpha:
a+=i
b=sorted(a,key=str.upper)
index=0
d=""
for i in range(len(s)):
if s[i].isalpha:
d+=b[index]
index+=1
else:
d+=s[i]
print(d)
except:
break
看起来这两段代码并没有什么不同,但是输入Hello NowCoder!时,代码一输出CdeeH llNooorw!,代码二输出!CdeeHllNooorw,问题出在 isalpha方法的调用上。 在第一个代码中:
python展开代码if i.isalpha(): # 注意这里有括号
在第二个代码中:
python展开代码if i.isalpha: # 缺少括号
1、isalpha是一个方法,而不是属性
在 Python 中,isalpha()是字符串(str)的一个方法(method),而不是属性(attribute)。
i.isalpha()(加括号)——调用方法
2、i.isalpha(不加括号)在 if语句中的行为
在 Python 中,任何非 None、非 False、非 0或非空的对象在 if语句中都会被当作 True处理。
本文作者:cc
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!