提问人:Perfectoid 提问时间:5/2/2022 最后编辑:Perfectoid 更新时间:5/2/2022 访问量:172
用整数序列替换每个字符
replacing every character with a sequence of integers
问:
这是我代码中的一个函数
def seq():
q=1
n=rann()
List=[n]
while q<n:
if (n % 2):
n = 3*n + 1
List.append(n)
else:
n=n//2
List.append(n)
if (len(List)>=len(y)):
print(List)
else:
return(rann())
x=input("enter name") #the next four lines of the code are my first trial.
y= [char for char in x]
for i in y:
y[i]=rann()
seq()
我有两个函数,第一个函数 rann() 生成一个整数,另一个(上面的代码)根据该数字生成一个序列。我想接受一个输入 x 并用生成的序列替换每个字符。我试过这样做
text = 'bat ball'
y=[char for char in text]
y[0:] = rann()
print(y)
例如,让输入是“bat ball”,所以我想要的是用序列的每个项替换输入的每个字符。 我知道有很多事情不对,但我想不出另一种方法。
答:
0赞
AboAmmar
5/2/2022
#1
你是说这样?我设计了一个来生成字符的 ascii 代码值,但你明白了。rann(x)
x
# example rann()
def rann(x):
return [ord(ch) for ch in x]
def seq(n):
q = 1
List = [n]
while q < n:
if n % 2:
n = 3*n + 1
List.append(n)
else:
n = n // 2
List.append(n)
if len(List) >= len(y):
print(List)
else:
return n
text = 'bat ball'
x = [char for char in text]
y = rann(x)
print(y)
[seq(n) for n in y]
0赞
srattigan
5/2/2022
#2
看看您尝试在此处生成哪种整数或序列会很有用 - 请发布一个示例。
据我所知,您想根据输入字符串生成一个数字列表吗?
最简单的方法可能是对每个字符使用 ASCII 代码,如下所示:
def seq():
'''
(None) -> List of int
Get user input and convert to int list
'''
nums = []
text = input("Enter text: ")
for ch in text:
nums.append(ord(ch))
return nums
从 int 值构建新列表比更改正在迭代的列表更容易。
如果 rann 从 char 生成 int 列表,请将上面的 ord 替换为 rann 并让它返回 int 列表。
您期望输出的样本在这里真的很有帮助。
评论