【无标题】

Python 编程题(1)
题目描述:
奇偶分拆排序

编程实现:
输入一个整数序列,对其进行排序,使得奇数在前,偶数在后,奇数从大到小排列,偶数从小到大排序。​

输入示例:
1 2 3 4 5 6
输出示例:
5 3 1 2 4 6

lst = list(map(int, input().split()))  # 获取用户输入并转换成列表
odd, even = [], []  # 分别创建奇数和偶数列表
for i in lst:  # 遍历用户输入并进行判断
    if i % 2 == 1:
        odd.append(str(i))  # 将奇数追加到odd列表
    else:
        even.append(str(i))  # 将偶数追加到odd列表
odd.sort(reverse=True)  # 将列表降序排序
even.sort()  # 将列表升序排序

print(" ".join(odd + even))

解析:
1.本题较为简单,考察列表数据项的奇偶判断和列表排序。
首先根据题意我们要获取用户输入,而且用户输入的是一个整数序列。我们先复习一下所需要使用到的函数。
input()函数:
Python3.x 中 input() 函数接受一个标准输入数据,返回值为 string 类型。
例如:
a = input(“请输入数字”)
print(type(a)) # 输出变量a类型 ,为字符串类型

split()方法:
split() 通过指定分隔符对字符串进行切片,如果第二个参数 num 有指定值,则分割为 num+1 个子字符串。
str.split(str=“”,)
str – 分隔符,默认为所有的空字符,包括空格、换行(\n)、制表符(\t)等。
返回值为返回分割后的字符串列表。
例如:
str = “this is string”
print (str.split( )) # 以空格为分隔符 输入为 [‘this’, ‘is’, ‘string’]

熟悉了以上函数和方法的使用,我们就可以嵌套着使用来达到题目要求,通过input()获取用户输入,并将用户输入的内容通过split()方法按空格分割,将分割后的元素,再通过map()函数映射成int类型,通过list()函数将数据转换成列表并赋值给lst变量
例如:
lst = list(map(int, input().split()))

2.获取完用户输入后,我们可以创建两个空列表分别来存储奇数和偶数。
奇偶判断只需要使用求余运算即可。为了符合题目的输出要求,我们把奇偶数,转换成字符串类型,方便输出的时候使用join()方法

3.按照题目要求,输入一个整数序列,对其进行排序,使得奇数在前,偶数在后,奇数从大到小排列,偶数从小到大排序。​
所以我们需要将判断奇偶后的列表进行排序。需要用到sort()方法
list.sort(reverse=False)
sort() 函数用于对原列表进行排序,如果指定参数,则使用比较函数指定的比较函数。
reverse – 排序规则,reverse = True 降序, reverse = False 升序(默认)。
该方法没有返回值,但是会对列表的对象进行排序。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值