Python,使用print()和replace()函数解释由字符串给出的代码
假设我有一个字符串形式的代码,例如: str(00012333210-1) 这些数字与我想要绘制的波的某个振幅有关 我想将代码转换为可打印的波形,其中数字由星号替换,例如:Python,使用print()和replace()函数解释由字符串给出的代码,python,python-3.x,replace,printing,wave,Python,Python 3.x,Replace,Printing,Wave,假设我有一个字符串形式的代码,例如: str(00012333210-1) 这些数字与我想要绘制的波的某个振幅有关 我想将代码转换为可打印的波形,其中数字由星号替换,例如: 3: *** 2: * * 1: * * 0:*** * -1: * -2: -3: 有什么有用的工具来做这件事吗 到目前为止,我已经尝试将字符串拆分为单独的数字,但我仍在努力处理否定项 例如: file = "000123332101233321000
3: ***
2: * *
1: * *
0:*** *
-1: *
-2:
-3:
有什么有用的工具来做这件事吗
到目前为止,我已经尝试将字符串拆分为单独的数字,但我仍在努力处理否定项
例如:
file = "000123332101233321000"
x = [int(i) for i in file]
print(x)
L = [0, 0, 0, 1, 2, 3, 3, 3, 2, 1, 0, 1, 2, 3, 3, 3, 2, 1, 0, 0, 0]
我只对python有一个非常基本的了解,所以我现在非常困惑。首先要认识到的是,终端中的打印从左到右,然后从上到下。一次一行。由于数据是转置的(每个值都属于一列,而不是一行),所以在打印之前,您需要先缓冲整个数据集。在伪代码中,应该是这样的:
for y in range(max(L), min(L) - 1, -1):
for val in L:
print('*' if val == y else ' ', end='')
print() # next line
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
例如:
file = "000123332101233321000"
x = [int(i) for i in file]
print(x)
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 = ''
我正试图想出更好的方法来做到这一点。欢迎来到SO。请看一看,并提供您迄今为止所尝试的内容。