【发布时间】:2011-07-06 19:54:29
【问题描述】:
我的家庭作业是编写一个程序,该程序从用户那里读取一个字符串并从输入中创建一个单词列表。创建两个列表,一个包含至少包含一个大写字母的单词和一个单词不包含任何大写字母。 使用单个 for 循环打印出其中包含大写字母的单词,然后是其中没有大写字母的单词,每行一个单词。
我知道的不正确:
s= input("Enter your string: ")
words = sorted(s.strip().split())
for word in words:
print (word)
因为它仅在 Capitol 在第一个字符中时对序列进行排序。对于这个分配,一个字符可以出现在一个单词中的任何位置。如,'tHis is a sTring'。
我正在玩一个看起来与此类似的解决方案,只是想看看我是否可以将带有 CAPS 的单词弄出来..但它只是不起作用:
s = input("Please enter a sentence: ")
while True:
cap = 0
s = s.strip().split()
for c in s:
if c in "ABCDEFGHIJKLMNOPQRSTUVWXYZ":
print(c[:cap])
cap += 1
else:
print("not the answer")
break
但正则表达式可能比写出整个字母表做得更好。
非常感谢任何帮助。不用说我是 python 新手。
【问题讨论】:
-
+1。我想 -1 是因为这是家庭作业,但 casper 正在尝试完成这项工作并发布了代码。我认为没有必要投反对票。
-
在拆分之前不需要使用
strip,因为split会自动去除多余的空格。