•1.请输入需要排序的数列,按’e'键结束
• 2.从小到大请输入0,从大到小请输入1,输出排序结果
•3.请输入需要交换的第一个位置、请输入需要交換的第二个位置
输出结果
python如何编程
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
2条回答 默认 最新
- a5156520 2022-10-06 13:25关注
思路比较简单:
第一题用循环从输入获取值到一个列表,然后结束条件就用判断输入的是否是'e'即可。
第二题,从输入获取排序方式,然后用两个函数定义从大到小排序和从小到大排序列表,然后根据输入的值来判断你现在那种排序即可
第三题,从输入获取要交换的两个位置,然后一个函数来交换列表这两个位置的值即可。代码如下:
参考链接:
Python基础详解之列表复制_Python_脚本之家def sortSmall(nums): #从小到大排序 for i in range(0,len(nums)): for j in range (i,len(nums)): if nums[i]>nums[j]: temp = nums[i] nums[i] = nums[j] nums[j] = temp def sortBig(nums): #从大到小排序 for i in range(0,len(nums)): for j in range (i,len(nums)): if nums[i]<nums[j]: temp = nums[i] nums[i] = nums[j] nums[j] = temp def sortTwoNum(nums,first,second): #交换两个位置的值 temp = nums[first] nums[first] = nums[second] nums[second] = temp #第一题 nums=[] str = input("请输入需要排序的数列,按'e'结束:") while str!='e': nums.append(int(str)) str = input("请输入需要排序的数列,按'e'结束:") #http://www.zzvips.com/article/197790.html tnums = nums[:] #第二题 choice = input("请输入排序的方式,输入0为从小到大排序,输入1为从大到小排序") choice = int(choice) if choice == 0: sortSmall(nums) print(nums) elif choice == 1: sortBig(nums) print(nums) #第三题 如 first = int(input("请输入要交换的第一个位置:")) second = int(input("请输入要交换的第一二个位置:")) if first < 0 or first >=len(nums) or second < 0 or second >=len(nums): print("输入的位置错误") else : #果是要交换原输入的数列,则用sortTwoNum(tnums,first,second),如果是交换排序后的数列,则用sortTwoNum(nums,first,second) sortTwoNum(tnums,first,second) print(tnums)
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报 编辑记录
悬赏问题
- ¥15 MYSQL 多表拼接link
- ¥15 关于某款2.13寸墨水屏的问题
- ¥15 obsidian的中文层级自动编号
- ¥15 同一个网口一个电脑连接有网,另一个电脑连接没网
- ¥15 神经网络模型一直不能上GPU
- ¥15 pyqt怎么把滑块和输入框相互绑定,求解决!
- ¥20 wpf datagrid单元闪烁效果失灵
- ¥15 券商软件上市公司信息获取问题
- ¥100 ensp启动设备蓝屏,代码clock_watchdog_timeout
- ¥15 Android studio AVD启动不了