我在执行任务时遇到问题,我需要输入数字并像带有符号($)的直方图一样打印出来。一个单位是一个($)符号。
例如:
input
1 5 3 2
print
$
$$$$$
$$$
$$
当前代码:
number = int(input())
while (number > 0):
print('$' * number)
number = 0
这仅适用于一个数字。
要使代码正常工作需要做什么?
答案 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)