你好,所以我的任务显示在图片的上方。我不是要答案,我只是想知道如何开始。
我最初的想法是:
1.让用户输入str(“示例词”)
2.让用户输入int(“示例编号”)
3.使用for循环读取数字,然后将单词打印出来。
到目前为止,我的代码如下所示:
def repeat():
word=str(input("Please input a single word: "))
number=int(input("Please input a number: "))
for i in range(number):
number+=1
print(word,end=" ",sep='')
repeat()
但是我遇到了两个问题:
1.打印出单词时,输出为“ hello hello hello”而不是“ hellohellohello”
2.我觉得我没有完全正确地回答问题。
不胜感激!
答案 0 :(得分:1)
这部分代码:
print(word, end=' ', sep='')
正在添加这些空格。您不需要那些。另外,我不确定为什么要增加'number'数据类型。无需这样做,因为您只使用了for循环会根据用户输入进行操作的次数。同样,这些都应该传递给具有两个参数的函数:一个接受和整数,另一个接受字符串。例如:
repeat(intA, strB)
此外,我的建议是串联。将您的字符串添加在一起,而不是多次显示。这也将允许您创建一个新变量,稍后将其返回给调用它的函数。
答案 1 :(得分:0)
您可以创建以下函数来重复字符串:
def repeat(text, occurrence):
new_text = ''
for i in range(occurrence):
new_text += text
return new_text
print(repeat('Hi', 4)) # sample usage
最后,您可以像这样实现代码:
In [6]: repeat(input("Please input a single word: "), int(input("Please input a number: ")))
Please input a single word: hello
Please input a number: 5
Out[6]: 'hellohellohellohellohello'
答案 2 :(得分:0)
更多pythonic是使用生成器表达式:
def f(s,n):
return ''.join(s for _ in range(n))
或Python的标准库:
import itertools as it
def f(s, n):
return ''.join(it.repeat(s, n))
print(f('Hi', 3))
两种产品
'HiHiHi'