Python练习题,循环问题搞不懂

编写代码,分别统计输入的正数和负数的个数,直到输入0结束。

这个用while循环吗?


arr = [0,0] # 用来记录数量的列表
while True: # 设置 循环
    a = input() # 进行输入
    if a == '0': # 输入值验证是否为0
        break  # 如果输入值为字符0,则跳出循环
    try: # 为了避免出现非数值信息,这里进行异常捕捉
        x = eval(a) # 将输入的字符串进行转换,如果无法转换成功,跳至异常处理
        if type(x) is int or type(x) is float: # 转换成功,判断类型是否是整型或浮点型
            arr[0 if x < 0 else 1] += 1 # 如果类型合适,则根据值是否为正数,对列表中不同的项进行计数
    except: # 异常处理
        pass # 不处理
print(f'负数{arr[0]}个,正数{arr[1]}个') # 输出结果
 
zs = 0
fs = 0
n = int(input())
while n!=0:
    if n>0:
        zs = zs+1
    else:
        fs = fs+1
    n = int(input())
print(f'负数{zs}个,正数{fs}个') 


# 初始化正数和负数计数器
positive_count = 0
negative_count = 0

# 循环读取输入,直到输入0结束
while True:
    num = int(input("请输入一个整数(输入0结束):"))

    if num > 0: # 如果输入的数大于0
        positive_count += 1 # 正数计数器加1
    elif num < 0: # 如果输入的数小于0
        negative_count += 1 # 负数计数器加1
    else: # 如果输入的数等于0
        break # 结束循环

# 输出正数和负数的个数
print("正数个数:", positive_count)
print("负数个数:", negative_count)

以下内容部分参考ChatGPT模型:


可以使用while循环来实现这个问题,每次输入一个数字进行判断,如果是正数则正数计数器加一,如果是负数则负数计数器加一,直到输入0为止。代码如下:

positive_count = 0  # 正数计数器
negative_count = 0  # 负数计数器

while True:
    num = int(input("请输入一个整数:"))
    if num == 0:
        break  # 输入0时跳出循环
    elif num > 0:
        positive_count += 1
    else:
        negative_count += 1

print("正数个数为:", positive_count)
print("负数个数为:", negative_count)

以上代码中,我们使用了一个无限循环(while True),每次输入一个整数进行判断,如果输入0就跳出循环,否则根据正负性对应的计数器进行计数。最后输出正负数个数即可。


如果我的建议对您有帮助、请点击采纳、祝您生活愉快