python,这个哪里有问题,输入数字用逗号隔开(比如1,0,-1,5...),输出是这里面有多少
python,这个哪里有问题,输入数字用逗号隔开(比如1,0,-1,5...),输出是这里面有多少个正数...
python,这个哪里有问题,输入数字用逗号隔开(比如1,0,-1,5...),输出是这里面有多少个正数
展开
3个回答
展开全部
方法一:
def count_pos(l):
num = 0
for x in l: # 直接遍历数组就可以了,加了range反而错了。
if x > 0:
num += 1
print(num)
s = input('input some number: ')
l = eval(s) # 因为不会修改数列的内容,所以用tuple就可以,没必要转成list
count_pos(l)
方法二:
s = input('input some number: ')
l = eval(s)
print(count([x for x in l if x > 0])) # 一句话搞定,没必要写函数
追问
eval不行的
如果少于两个数就报错了
展开全部
def count_pos(l):
num = 0
#直接遍历list
for i in l:
if i > 0:
num = num + 1
#用print格式化输出
print("There are %s positive number in your list" %num)
s = input("Please input a list of numbers separated by commas: ").split(',')
#直接用List Comprehension来把每个元素转换成int
l = [ int(x) for x in s ]
count_pos(l)
更多追问追答
追问
有没有不把for x in s 放在里面的表达方法
追答
那就直接在count_pos里遍历list的时候把元素转成int
def count_pos(l):
num = 0
#直接遍历list
for i in l:
#转换成int
if int(i) > 0:
num = num + 1
#用print格式化输出
print("There are %s positive number in your list" %num)
s = input("Please input a list of numbers separated by commas: ").split(',')
count_pos(s)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
>>> a=input('input:')
input:1,-1,2,-3,4
>>> a
(1, -1, 2, -3, 4)
>>> type(a)
<type 'tuple'>
>>> sum(map(lambda x:[1,0][x<0],a))
3
>>>
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询