gpt4 book ai didi

Python,使用print()和replace()函数解释string给出的代码

转载 作者:行者123 更新时间:2023-11-28 17:07:56 24 4
gpt4 key购买 nike

假设我有一个字符串中的代码,例如:海峡(00012333210-1)

这些数字与我希望绘制的波的特定振幅有关。

我想将代码转换为可打印的 wave,其中数字由星号替换,例如:

 3:     ***
2: * *
1: * *
0:*** *
-1: *
-2:
-3:

有什么有用的工具可以做到这一点?

到目前为止,我已经尝试将字符串拆分成单独的数字,但是我正在努力处理负数。

例如:

file = "000123332101233321000"
x = [int(i) for i in file]
print(x)

我对 python 只有非常基本的了解,所以我现在很困惑。

最佳答案

首先要认识到终端中的打印顺序是从左到右,然后是从上到下。一次一行。由于您的数据已转置(每个值属于一列,而不是一行),因此您需要先缓冲整个数据集,然后再打印。在伪代码中它应该是这样的:

  1. 将字符串标记为数字列表L
  2. 计算max(L)。从此向下循环到 min(L)
  3. 在每次迭代(即一行输出)中,遍历 L,每当 L 中的值与循环索引匹配时打印一个星号,以及一个空格否则。

第二步和第三步是这样的:

for y in range(max(L), min(L) - 1, -1):
for val in L:
print('*' if val == y else ' ', end='')
print() # next line

以你的例子为例:

L = [0, 0, 0, 1, 2, 3, 3, 3, 2, 1, 0, 1, 2, 3, 3, 3, 2, 1, 0, 0, 0]

它打印:

     ***     ***     
* * * *
* * * *
*** * ***

关于Python,使用print()和replace()函数解释string给出的代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49829574/

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