2019-07-18 python练习:编写一个程序,要求用户输入10个整数,然后输出其中最大的奇数,如果用户没有输入奇数,则输出一个消息进行说明。

python练习:编写一个程序,要求用户输入10个整数,然后输出其中最大的奇数,如果用户没有输入奇数,则输出一个消息进行说明。

思路:

重难点:通过input函数输入的行消息为字符串格式,必须转换为整型,否则不能进行排序交换位置。通过索引的方式可以查看字符串中的每一个字符,双层for循环进行冒泡排序。for循环的倒序输出方式:for z in range(9,1,-1):。break直接跳出循环。通过标志位判断是否输出过奇数。

代码:

#方法1:有缺陷

# -*- coding:utf-8 -*-

'''

@project:pycharm-project

@auther:lenovo

@file:10-max-odd.py

@IDE:PyCharm

@time1:2019-07-18 17:11:20

@time2:2019-7-18

@month1:7月

@month2:七月

'''

print("————————————————————————————")

num=input('请输入十个整数:')#通过input函数输入,这时返回值为行信息的字符串

for min range(10):

print(int(num[m]))#通过索引查看每一个值

num=list(map(int,num))#把字符串序列转化为整型序列

print(num)

a=0

for iin range(10):#循环写10

    for jin range(i+1,10):#双层循环,进行冒泡排序

        if(int(num[i])>int(num[j])):

num[i],num[j]=num[j],num[i]

print(num)

for zin range(9,1,-1):#倒序输出,正序输出range(0,10),注意是(9,1)不是(9,0)也不是(10,0)

    if(int(num[z])%2==1):

print(num[z])

a=a+1

        break;#输出一个奇数的话,直接跳出循环

if(a==0):#设立标志位,记录是否输出过奇数

    print('用户没有输入奇数。')

#方法2:

# 循环从控制台输入程序

num_list = []

for iin range(10):

num =int(input("第" +str(i +1) +"个数"))# 这里必须把i转为字符串类型,因为默认的i是int型

    num_list.append(num)# 这里用append函数将用户输入的num添加到列表中

odd = []

for numbin num_list:

if numb %2 ==1:

odd.append(numb)# 遍历原列表,将其中的奇数添加到odd列表中

if odd:# 如果odd不为空

    print(sorted(odd)[-1])# 升序排列后直接取最后一位数即为最大值

else:

print("没有奇数")

你可能感兴趣的:(2019-07-18 python练习:编写一个程序,要求用户输入10个整数,然后输出其中最大的奇数,如果用户没有输入奇数,则输出一个消息进行说明。)