我正在尝试定义一个函数,它打印字符串的确切长度(可以是任何长度 - 基于用户输入),作为数字。例如:
string = "hello"
字符串的长度是5,所以python打印这一行:
"1 2 3 4 5"
如果
string = "notnow"
字符串的长度是6,所以python打印这一行:
"1 2 3 4 5 6"
答案 0 :(得分:1)
我使用enumerate,它按字符快速计算(在本例中),并且可以非常整齐地用于列表理解:
for i, char in enumerate(string):
print i+1,
其中string
是您想要的任何字符串(来自用户输入,或其他)。 print i+1
打印枚举(加一,因为索引从0开始),逗号将它们全部保存在同一行。
您可以将其与标准一起使用:
string = raw_input('Enter some text: ')
或input
如果您在python 3.X
答案 1 :(得分:1)
string1 = "hello"
string2 = "notnow"
def lenstr(s):
return ' '.join(map(str, range(1, len(s) + 1)))
print(lenstr(string1))
print(lenstr(string2))
print(lenstr(''))
如果字符串的长度为0,则不会打印任何内容。
答案 2 :(得分:0)
只要整数为正,就可以打印x,x-1,x-2等。
答案 3 :(得分:0)
这个怎么样:
ret = ""
string = "hello"
for i in range(len(string)):
ret+=str(i+1) + " "
print ret
len("hello")
为5,len("notnow")
为6.我不知道为什么你的问题中的这些数字是1。
答案 4 :(得分:0)
对于这类问题,我喜欢将列表理解和连接结合起来。像这样:
def indexify(text):
return ' '.join([str(x + 1) for x in range(len(text))])