数字到符号(Python)

问题描述 投票:-3回答:4

我有任务的问题,我需要输入数字并打印它像一个符号($)的直方图。一个单位是一个($)符号。

例如:

input

1 5 3 2

print

$
$$$$$
$$$
$$

目前的代码:

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

这仅适用于一个数字。

编码工作需要做些什么?

python
4个回答
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)
... 
$
$$
$$$
$$$$
$$$$$
>>> 

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)

$
$$$$$
$$$
$$

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)

0
投票
numbers = raw_input("input :")
for number in [li for li in numbers.split(" ") if li.isdigit()]:
    print('$' * int(number))
© www.soinside.com 2019 - 2024. All rights reserved.