依次接受使用者輸出的3個數,排公升序後列印(四種方法)
轉換int後,判斷大小排序(if…else)
a = int(input('num1'))
b = int(input('num2'))
c = int(input('num3'))
if a>=b:
if c>=a:
print(b,a,c)
elif b>c:
print(c,b,a)
else:
print(b,c,a)
else:
if bc:
print(a,c,b)
else:
print(c,a,b)
可改進之處:
①:可建立列表,利用for迴圈控制輸入個數,接下來利用索引比較大小
nums=
for i in range(3):
a = input('nums')
b = nums
②:可用format函式填充,減少**輸入
nums=
for i in range(3):
使用min排序
nums=
out = none
for i in range(3):
while true:
cur = min(nums)
print(cur)
nums.remove(cur)
if len(nums) == 1:
print(nums[0])
break
使用列表的sort方法
#法三:
a = int(input('num1'))
b = int(input('num2'))
c = int(input('num3'))
n = [a,b,c]
n.sort()
print(n)
冒泡法
氣泡排序(bubble sort): 重複地走訪過要排序的元素列,依次比較兩個相鄰的元素,如果他們的順序(如從大到小、首字母從a到z)錯誤就把他們交換過來。
走訪元素的工作是重複地進行直到沒有相鄰元素需要交換,也就是說該元素已經排序完成。越大的元素會經由交換慢慢「浮」到數列的頂端(公升序或降序排列).
法一(冒泡法簡單實現):
num_list = [
[1,9,8,5,6,7,4,3,2],
[1,2,3,4,5,6,7,8,9]
]nums = num_list[0]
print(nums)
length = len(nums)
count_swap = 0
count = 0
for i in range(length):
for j in range(length-i-1):
count += 1
if nums[j] > nums[j+1]:
tmp = nums[j]
nums[j] = nums[j+1]
nums[j+1] = tmp
count_swap += 1
print(nums,count_swap,count)
法一可優化點:法一情況下,即使某一趟已全部排序完成,也會走完剩餘掃瞄過程,可以加入count_swap,如為0,則認為交換已完成
num_list = [
[1,9,8,5,6,7,4,3,2],
[1,2,3,4,5,6,7,8,9]
]nums = num_list[1]
print(nums)
length = len(nums)
count_swap = 0
count = 0
for i in range(length):
flag = false
for j in range(length-i-1):
count += 1
if nums[j] > nums[j+1]:
tmp = nums[j]
nums[j] = nums[j+1]
nums[j+1] = tmp
flag = true
count_swap += 1
if not flag:
break
print(nums,count_swap,count)
練習題 檔案操作
完成使用者註冊 登陸功能。操作編碼 操作 0 註冊 1 登入 請輸入你要進行的操作編碼 1 提示使用者輸入,使用者名稱和密碼,其中密碼需要輸入2次。提示使用者名稱只能為字母 下劃線和數字 密碼不能超過8位,密碼只能為數字或大小寫字母 2 註冊成功後,賬戶密碼記錄在檔案中 user.txt 內容格式可...
Python列表 字典 元組練習題
一 將下列姓名長度小於2字元的刪除,將寫法不同但名字一樣的名字合併,並按首字母大寫形式輸出。names bob john alice bob alice j bob 答案 names bob john alice bob alice j bob ans ans二 將上題列表中所有重名人員進行計數並以...
Java String練習題及答案
1.編寫程式將 jdk 全部變為大寫,並輸出到螢幕,擷取子串 dk 並輸出到螢幕 編寫程式將 jdk 全部變為大寫,並輸出到螢幕,擷取子串 dk 並輸出到螢幕 public static void main string args 2.編寫程式將string型別字串 test 變為 tset 2.編...