如何使用范围 - Python 将列表中的单词更改为 upper/lower 大小写
How to change words in a list to upper/lower case using range - Python
我的任务之一是获取用户输入,将其转换为列表,然后根据每个单词中的字符数,相应地更改为 upper/lower 大小写。我被告知我必须使用范围,这是我正在努力的部分。这是我最近的尝试,但没有用。如有任何建议,我们将不胜感激。
poem = input("Enter a poem, verse or saying: ")
words_list = poem.split()
list_len = len(words_list)
for word in range(0,list_len):
if len(words_list[word]) < 4:
word = word.lower()
elif len(words_list[word]) > 6:
word = words.upper()
这个怎么样?
poem = input("Enter a poem, verse or saying: ")
words_list = poem.split()
out = ""
for word in words_list:
if len(word) < 4:
word = word.lower()
elif len(word) > 6:
word = word.upper()
out += " " + word
print(out)
删除了不需要的 "list_len" 变量,在 "words_list" 中循环并检查 "word" 的长度。并使用 "out" 变量集中输出。对于输出可能有更好的技术,我只是做了一个简单的。
poem = input("Enter a poem, verse or saying: ")
words_list = poem.split()
list_len = len(words_list)
# word is not a word here, it was an integer
# by a convention we use 'i' for the iterator here
for i in range(0,list_len):
# here we assign an actual 'word' to the word variable
word = words_list[i]
if len(word) < 4:
# therefore you couldn't use .lower() or .upper() on the integer
word = word.lower()
elif len(word) > 6:
word = word.upper()
使用适当的 IDE 进行编码,例如 PyCharm。它会提醒您所犯的所有错误。
如果你真的需要使用范围,那会起作用,但你仍然需要弄清楚打印/返回值。
如果您不知道发生了什么,只需在需要的地方添加一些 print
。如果你在代码中打印出来,你会自己弄清楚的。
只是对您的原始代码稍作修改。由于您想转换为 upper/lower 大小写,因此您可能还想保存输出。您也可以使用新列表来保存输出,而不是替换原始列表中的值 words_list
for word in range(0,list_len):
if len(words_list[word]) < 4:
words_list[word] = words_list[word].lower()
elif len(words_list[word]) > 6:
words_list[word] = words_list[word].upper()
print(words_list)
输出
Enter a poem, verse or saying: My name is bazingaa
['my', 'name', 'is', 'BAZINGAA']
您的代码有几个问题。 word
是迭代器的值,因此它是一个整数。您不能对整数使用函数 upper
和 lower
。但是,您可以用更简单的方法解决它:
poem = input("Enter a poem, verse or saying: ")
words_list = poem.split()
for i in range(0,len(words_list)):
word = words_list[i]
word = word.lower() if len(word) < 4 else word
if len(word) > 6:word = word.upper()
print(word)
在执行上面的代码时:
Enter a poem, verse or saying: Programming in Python is great
PROGRAMMING
in
Python
is
great
你也可以把它的函数 which returns 做成一个列表(也用 range
):
def get(string):
words_list = string.split()
output = []
for i in range(0,len(words_list)):
word = words_list[i]
word = word.lower() if len(word) < 4 else word
if len(word) > 6:word = word.upper()
output.append(word)
return output
print(get(input("Enter a poem, verse or saying: ")))
测试:
Enter a poem, verse or saying: Programming in Python is great
['PROGRAMMING', 'in', 'Python', 'is', 'great']
我的任务之一是获取用户输入,将其转换为列表,然后根据每个单词中的字符数,相应地更改为 upper/lower 大小写。我被告知我必须使用范围,这是我正在努力的部分。这是我最近的尝试,但没有用。如有任何建议,我们将不胜感激。
poem = input("Enter a poem, verse or saying: ")
words_list = poem.split()
list_len = len(words_list)
for word in range(0,list_len):
if len(words_list[word]) < 4:
word = word.lower()
elif len(words_list[word]) > 6:
word = words.upper()
这个怎么样?
poem = input("Enter a poem, verse or saying: ")
words_list = poem.split()
out = ""
for word in words_list:
if len(word) < 4:
word = word.lower()
elif len(word) > 6:
word = word.upper()
out += " " + word
print(out)
删除了不需要的 "list_len" 变量,在 "words_list" 中循环并检查 "word" 的长度。并使用 "out" 变量集中输出。对于输出可能有更好的技术,我只是做了一个简单的。
poem = input("Enter a poem, verse or saying: ")
words_list = poem.split()
list_len = len(words_list)
# word is not a word here, it was an integer
# by a convention we use 'i' for the iterator here
for i in range(0,list_len):
# here we assign an actual 'word' to the word variable
word = words_list[i]
if len(word) < 4:
# therefore you couldn't use .lower() or .upper() on the integer
word = word.lower()
elif len(word) > 6:
word = word.upper()
使用适当的 IDE 进行编码,例如 PyCharm。它会提醒您所犯的所有错误。
如果你真的需要使用范围,那会起作用,但你仍然需要弄清楚打印/返回值。
如果您不知道发生了什么,只需在需要的地方添加一些 print
。如果你在代码中打印出来,你会自己弄清楚的。
只是对您的原始代码稍作修改。由于您想转换为 upper/lower 大小写,因此您可能还想保存输出。您也可以使用新列表来保存输出,而不是替换原始列表中的值 words_list
for word in range(0,list_len):
if len(words_list[word]) < 4:
words_list[word] = words_list[word].lower()
elif len(words_list[word]) > 6:
words_list[word] = words_list[word].upper()
print(words_list)
输出
Enter a poem, verse or saying: My name is bazingaa
['my', 'name', 'is', 'BAZINGAA']
您的代码有几个问题。 word
是迭代器的值,因此它是一个整数。您不能对整数使用函数 upper
和 lower
。但是,您可以用更简单的方法解决它:
poem = input("Enter a poem, verse or saying: ")
words_list = poem.split()
for i in range(0,len(words_list)):
word = words_list[i]
word = word.lower() if len(word) < 4 else word
if len(word) > 6:word = word.upper()
print(word)
在执行上面的代码时:
Enter a poem, verse or saying: Programming in Python is great
PROGRAMMING
in
Python
is
great
你也可以把它的函数 which returns 做成一个列表(也用 range
):
def get(string):
words_list = string.split()
output = []
for i in range(0,len(words_list)):
word = words_list[i]
word = word.lower() if len(word) < 4 else word
if len(word) > 6:word = word.upper()
output.append(word)
return output
print(get(input("Enter a poem, verse or saying: ")))
测试:
Enter a poem, verse or saying: Programming in Python is great
['PROGRAMMING', 'in', 'Python', 'is', 'great']