python - 在函数中使用 *args 并得到此错误:“预期的字符串或类似字节的对象”
问题描述
我尝试在这两种情况下编写程序:
1.如果用户没有将他的字符串作为函数参数传递,使用输入函数来获取他的字符串。
2.如果用户将他的字符串作为函数参数传递,则将函数输入作为字符串。
从用户那里得到字符串后,计算单词的频率。所以,这是我的功能:
def words_frequency(*string_input):
if not string_input:
string_input = input("Please write your text: ")
else:
string_input = string_input
input_words = re.sub('[:,:?/;.]', ' ', string_input)
sorted_words = input_words.lower().split()
sorted_words.sort()
print(sorted_words)
words_dict = {}
for word in sorted_words:
words_dict[word] = words_dict.get(word, 0) + 1
return words_dict
str1 = "Lorem ipsum dolor sit amet, consectetur adipisicing elit. Lorem ipsum dolor sit amet, consectetur adipisicing elit."
print(words_frequency(str1))
我的功能中的所有东西都可以
我用常用的方法来测试我的函数来获取参数或获取输入,它们都在不同的情况下运行和工作。但我不能同时使用它们。
你能帮助我吗?
解决方案
如果我理解正确,我相信您希望能够使用字符串作为输入来运行 words_frequency() 函数,或者如果函数在没有输入的情况下运行,则让它要求输入。
您可以通过更改以下内容来实现此目的:
def words_frequency(*string_input):
至:
def words_frequency(string_input=""):
我希望这会有所帮助,也许可以看到这个链接来解释 python 中的函数参数:)
而且如果你坚持使用*string_input,一定要把它变成String。结果,你也可以使用这个方法:
def words_frequency(*string_input):
if not string_input:
string_input = input("Please write your text: ")
else:
string_input = str(string_input)
推荐阅读
- python - plotly.io.write_image() 通过添加“/”来更改我给定的文件路径,这使得路径无用
- python-3.x - 如何在 Python 中为库指定日志记录格式(依赖项)
- java - 接下来的情况有什么区别
- php - 我有一个月的周数,并希望在 PHP 中获得该周内的第一个日期
- php - 为什么 PHP 的 trim() 会忽略某些“种类”的空格?
- javascript - 如何将 promise 的解析值存储在变量中?
- javascript - 如何返回 Ajax 结果,使用回调函数并存储在变量中
- c# - 无论用户如何移动文件(C#)
- java - WebTestclient 正在抛出 Null Exception,@Autowire 在那里
- r - Predict () 基于给定的 x - 许多人遇到这个问题,但没有一个答案有效