将数字转换成符号(Python)

时间:2019-03-05 09:37:38

标签: python

我在执行任务时遇到问题,我需要输入数字并像带有符号($)的直方图一样打印出来。一个单位是一个($)符号。

例如:

input

1 5 3 2

print

$
$$$$$
$$$
$$

当前代码:

number = int(input())
while (number > 0):
    print('$' * number)
    number = 0

这仅适用于一个数字。

要使代码正常工作需要做什么?

4 个答案:

答案 0 :(得分:1)

你很亲密,你的想法是对的。

当您输入()一个字符串,并用空格分隔数字时,您需要将每个数字转换为整数,因为默认情况下,所有参数都是输入字符串。

您可以使用map函数将每个输入转换为整数。

inp = map(int, input().split())

此处input().split()1 5 3 2转换为['1', '5', '3', '2']

然后应用map(int,[1、5、3、2])等效于对每个元素进行int(1),int(5)。

map的语法:map(function, Iterable)函数在情况下为int()

然后有了整数,您要做的就是取每个值并打印数字'$'

for val in inp:
    print('$'*val)

这是完整的代码:

inp = map(int, input().split())
for val in inp:
    print('$'*val)

$
$$$$$
$$$
$$

答案 1 :(得分:1)

您可以像以下那样做

>>> x = input("Enter the numbers: ") # use `raw_input` if `python2`
Enter the numbers: 1 2 3 4 5
>>> x
'1 2 3 4 5'
>>> y = [int(z) for z in x.split()]
>>> y
[1, 2, 3, 4, 5]
>>> for i in y:
...   print('$' * i)
... 
$
$$
$$$
$$$$
$$$$$
>>> 

答案 2 :(得分:0)

numbers = raw_input("input :")
for number in [li for li in numbers.split(" ") if li.isdigit()]:
    print('$' * int(number))

答案 3 :(得分:0)

您可以尝试

#get numbers as string
numbers = input('Enter numbers separated by <space> :')
# split numbers (create list)
nums = numbers.split(' ')
#loop each number
for num in nums:
    print_num = ''
    #create what to print
    for i in range(int(num)):
        print_num = print_num + '$'
    #print
    print(print_num)