我有任务的问题,我需要输入数字并打印它像一个符号($)的直方图。一个单位是一个($)符号。
例如:
input
1 5 3 2
print
$
$$$$$
$$$
$$
目前的代码:
number = int(input())
while (number > 0):
print('$' * number)
number = 0
这仅适用于一个数字。
编码工作需要做些什么?
你可以这样做,如下,
>>> 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)
...
$
$$
$$$
$$$$
$$$$$
>>>
你很亲密,你的想法是正确的。
当您输入()字符串由空格分隔的数字时,您需要将每个数字转换为整数,因为默认情况下所有参数都是输入字符串。
您可以使用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)
$
$$$$$
$$$
$$
你可以试试这个
#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)
numbers = raw_input("input :")
for number in [li for li in numbers.split(" ") if li.isdigit()]:
print('$' * int(number))