gpt4 book ai didi

Python - 数字旋转

转载 作者:行者123 更新时间:2023-12-02 03:28:43 25 4
gpt4 key购买 nike

我正在尝试创建接受给定整数的代码,然后输出一组整数,所有这些都是输入整数的数字旋转。

因此,如果我输入“197”,输出应该是“197”、“971”和“791”。

但是,当我尝试时:

def rotation(n):
rotations = set()
for i in range( len( str(n) ) ):
n = int( str(n)[i:] + str(n)[:i] )
rotations.add(n)

输入“197”时,它仅返回“197”、“971”,而不返回“791”。

为什么会发生这种情况?

最佳答案

你就快到了。除非你在每次迭代时删除输入 n 。使用另一个变量名称。

def rotation(n):
rotations = set()
for i in range( len( str(n) ) ):
m = int( str(n)[i:] + str(n)[:i] )
rotations.add(m)
return rotations

print(rotation(197))

我会使用集合理解来写得更像这样:

def rotation(number):
str_number = str(number)
return {
int( str_number[i:] + str_number[:i] )
for i in range(len(str_number))
}

@Henry Woody 的解决方案 2 也很好。不要在每次迭代时将输入字符串旋转 i,而是从上次迭代开始旋转 1

关于Python - 数字旋转,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52461392/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com