我想用这样的数字制作一个字符串:123456789
。
我可以使用for
循环轻松编写此代码。
x = ""
for i in range(1, 10):
x += str(i)
但是,我希望编写此代码时没有明确的for
循环。
有什么创造性的方法可以做到这一点?
答案 0 :(得分:3)
您可以如下创建范围:
rangeToConvert = range(1, 10)
然后加入列表以创建字符串。唯一的问题是rangeToConvert中的值是整数,因此您需要将它们转换为字符串才能使用join函数。
x = ''.join(map(str, rangeToConvert))
在这种情况下,X为:
'123456789'
答案 1 :(得分:3)
仅出于此目的,如果您确实需要,可以使用递归函数:
def stringer(n):
if n <= 1:
return '1'
return stringer(n-1) + str(n)
该函数的作用是通过递归调用自身来返回字符串123...n
,每次减小n
直到到达1
,然后在返回的路径上构建该字符串。
如果被称为print(stringer(9))
,则会得到:
123456789
那里没有循环,只是一个不错的调用堆栈
答案 2 :(得分:1)
如果您希望使用python的var storageArray = [];
function printHighscores() {
var userInitials = JSON.parse(localStorage.getItem("userInitials"));
var highScore = JSON.parse(localStorage.getItem('userScore'));
storageArray.push(userInitials, highScore);
console.log(storageArray)
模块,可以执行以下操作:
itertools
上述代码段运行时,将打印:
from itertools import takewhile, count
x = ''
x = ''.join(map(str, takewhile(lambda x: x < 10, count(1))))
print(x)