•1.请输入需要排序的数列,按’e'键结束
• 2.从小到大请输入0,从大到小请输入1,输出排序结果
•3.请输入需要交换的第一个位置、请输入需要交換的第二个位置
输出结果
思路比较简单:
第一题用循环从输入获取值到一个列表,然后结束条件就用判断输入的是否是'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)
lstA = eval(input("请输入一个列表:"));
lstB=sorted(lstA,reverse=True);
print(lstB);