![](/img/trans.png)
[英]Using replace() function in Python to replace vowels in a string
[英]Python, using print() and replace() function to interpret code given by string
假设我有一个字符串中给出的代码,例如:str(00012333210-1)
这些数字与我希望绘制的波形上的某个振幅有关。
我想将代码转换为可打印的wave,其中数字由星号代替,例如:
3: ***
2: * *
1: * *
0:*** *
-1: *
-2:
-3:
这样做有用的工具吗?
到目前为止,我已经尝试将字符串拆分为单个数字,但是我正在努力解决这些问题。
例如:
file = "000123332101233321000"
x = [int(i) for i in file]
print(x)
我对python只有非常基本的了解,所以我现在非常困难。
首先要认识到的是,终端中的打印从左到右,然后从上到下。 一次一行。 由于您的数据是转置的(每个值都属于一列而不是一行),因此在打印之前,您需要首先缓冲整个数据集。 在伪代码中它应该是这样的:
L
max(L)
。 从此循环到min(L)
。 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]
它打印:
*** ***
* * * *
* * * *
*** * ***
您可以使用以下代码将字符串转换为整数列表:
y = '00012333210-1'
nums = []
for i in y:
if i == '-':
sym = i
continue
nums.append(int(sym+i))
sym = ''
我试图想出更好的方法来做到这一点。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.