用pythoy写:输入一串正整数,以0或者-1为结束,求他们中奇数的个数
时间: 2024-09-25 21:17:24 浏览: 58
在Python中,你可以使用循环结构和条件判断来实现这个功能。以下是一个简单的示例:
```python
def count_odd_numbers(input_string):
# 将字符串转换为整数列表
num_list = list(map(int, input_string.split()))
# 初始化奇数计数器
odd_count = 0
# 遍历列表,检查每个数字是否为奇数
for num in num_list:
if num != 0 and num != -1 and num % 2 != 0:
odd_count += 1
return odd_count
# 获取用户输入
input_str = input("请输入一串正整数,以0或者-1为结束(例如:1 3 5 0 -1): ")
# 调用函数计算奇数个数并打印结果
odd_numbers = count_odd_numbers(input_str)
print(f"输入字符串中有 {odd_numbers} 个奇数。")
相关问题
题目内容: 你的程序要读入一系列正整数数据,输入-1表示输入结束,-1本身不是输入的数据。程序输出读到的数据中的奇数和偶数的个数。 输入格式: 一系列正整数,整数的范围是(0,100000)。如果输入-1则表示输入结束。 输出格式: 两个整数,第一个整数表示读入数据中的奇数的个数,第二个整数表示读入数据中的偶数的个数。两个整数之间以空格分隔。 输入样例: 9 3 4 2 5 7 -1 输出样例: 4 2
以下是解决这个问题的一个可能的实现方式:
```python
def count_odd_even_numbers():
odd_count = 0
even_count = 0
while True:
num = int(input())
if num == -1:
break
if num % 2 == 0:
even_count += 1
else:
odd_count += 1
return odd_count, even_count
odd_count, even_count = count_odd_even_numbers()
print(odd_count, even_count)
```
这个程序定义了一个函数 `count_odd_even_numbers()`,用于读取一系列正整数,并统计其中奇数和偶数的个数。使用一个无限循环来不断读取输入的整数,如果读到的整数为 -1,则退出循环。每读取一个整数,判断它是奇数还是偶数,然后更新相应的计数器。最后返回奇数和偶数的个数。
在主程序中调用 `count_odd_even_numbers()` 函数,并将返回的奇数和偶数个数打印出来。
注意:由于题目要求的输入输出格式比较简单,这里未做输入异常处理和错误提示。实际应用中,可能需要对输入进行验证和异常处理。
设计程序,功能为:从键盘输入一组整数, 以-1结束输入,统计: 1)输入的正整数的个数 2)分别计算输入数据中的偶数的和,奇数的和。
设计这样一个程序,你需要按照以下步骤来进行:
1. 首先,创建一个主函数,作为程序的入口点。
2. 使用`while`循环读取用户的输入,直到用户输入-1为止。这可以使用`input()`函数获取用户的输入,并将其转换成整数,例如通过`int(input())`。
3. 对于每一次输入,检查它是否为正整数(大于0)。如果是,就增加正整数计数器,并将这个数累加到相应的总和(偶数或奇数,根据其除以2的余数决定)。
4. 当遇到-1时,跳出循环。此时,你应该已经有了所有输入的统计信息:正整数的数量以及偶数和奇数的和。
5. 最后,在循环之外打印出结果:正整数的数量、偶数的和以及奇数的和。
以下是伪代码示例:
```python
count_positive = 0
sum_even = 0
sum_odd = 0
while True:
user_input = int(input("请输入一个整数(输入-1结束):"))
if user_input == -1:
break
elif user_input > 0:
count_positive += 1
# 判断奇偶性并累加和
if user_input % 2 == 0:
sum_even += user_input
else:
sum_odd += user_input
print(f"正整数的个数:{count_positive}")
print(f"偶数的和:{sum_even}")
print(f"奇数的和:{sum_odd}")
```
阅读全文