17、試設計一程式可以比較一組資料(小於 10000 之正整數)中,
任意一位(或數位數)之大小。
輸入資料:任意一組小於 10000 之正整數,及所欲比較之位數 N
( 1 < N < 4 )
輸出資料:照條件敘述列印出來
這個條件要包含:
(1)由大而小列印出來
(2)由小而大列印出來
(3)第 N 位數之最大者
(4)第 N 位數之最小者
(5)取任意連續二項而比較其大小
(6)取任意連續三項而比較其大小
例:輸入資料 0237 0126 3175 1167
輸出條件 輸出資料
(1)由小而大列印出來 0126 0237 1167 3175
(2)第三位數之最小者 0126
(3)第一位數之最大者 3175
(4)第二,三位數之最大者 0237(即比較 23> 12> 17> 16
之大小)
|
範例一
|
輸入
|
0237
0126
3175
1167
|
輸出
|
(1) 0126 0237
1167 3175
(2) 0126
(3)3175
(4)0237
|
#coding=utf8
#17、試設計一程式可以比較一組資料(小於 10000 之正整數)中,
# 任意一位(或數位數)之大小。
# 輸入資料:任意一組小於 10000 之正整數,及所欲比較之位數 N
# ( 1 < N < 4 )
# 輸出資料:照條件敘述列印出來
# 這個條件要包含:
# (1)由大而小列印出來
# (2)由小而大列印出來
# (3)第 N 位數之最大者
# (4)第 N 位數之最小者
# (5)取任意連續二項而比較其大小
#
print(" ===========python 程式設計50題測試範例-17============= ")
print("17、試設計一程式可以比較一組資料(<10000之正整數)中")
print(" ,任意一位(或數位數)之大小。")
print(" 輸入資料:任意一組小於 10000 之正整數,及所欲比較之位數 N")
print(" ")
print(" 輸出資料:照條件敘述列印出來")
print(" 這個條件要包含:")
print(" (1)由大而小列印出來")
print(" (2)由小而大列印出來")
print(" (3)第 N 位數之最大者")
print(" (4)第 N 位數之最小者")
print(" (5)取任意連續二項而比較其大小")
#=========#串列 (list)============
w=[] #串列 (list)
w1=[] #串列 (list)
y=[] #串列 (list)
y1=[] #串列 (list)
input2=[] #串列 (list)
while True:
x=int(input("請你輸入要比較數字總共的數量 (大於2 ,小於10):"))
try:
x = int(x)
except ValueError:
print ('這是不合法的輸入. 請再輸入一次...')
continue
if ( x > 2 and x <=10 ):
break
for i in range(x):
a=int(input("請輸入你要比較的數字(需大於等於1000):"))
sP=repr(a) #轉成 字串
P=(sP[1:3]) #擷取 第2,3位數
#print(sP) #debug
#print(P) #debug
w.append(a)
y.append(a)
w1.append(a)
y1.append(P)
input1=sP+repr(P)
input1=input1.split(':')
input2=input2+input1
#=================================
print("====由大而小====")
while 1:
try:
c=max(w)
w.remove(c)
print (c)
except ValueError:
# print ("程式已經結束")
break
#=================================
print("====由小而大====")
while 1:
try:
d=min(y)
y.remove(d)
print (d)
except ValueError:
# print ("程式已經結束")
break
# Python提供兩種內建排序的function分別是sort()和sorted()
# 這兩個function都可以用來排序一個list
# 差別在於sorted()會回傳一個排序好新的list
# sort()會直接修改原始的list並排序完成
w2=sorted(w1)
#=================================
print("====",x,"位數中最大者 ====")
print(max(w2))
#=================================
print("====",x,"位數中最小者 ====")
print(min(w2))
# y1=sorted(y1)
#=================================
print("====數字中第2,3 位數中最大者 ====")
#print(y1)
#=================================
input3=() #tuple 元組
input3= tuple(input2)
print("======================")
print (input3)
print("======================")
input4= sorted(input3, key=lambda input3 : input3[1]) # sort by 數字中第2,3 位數中最大者
print(input4)
print ("最大者 = " ,(input4[len(input4)-1]))
>>>
================ RESTART: D:\程式語言 Python 入門\50題\Ex50-17-1.py ================
===========python 程式設計50題測試範例-17=============
17、試設計一程式可以比較一組資料(<10000之正整數)中
,任意一位(或數位數)之大小。
輸入資料:任意一組小於 10000 之正整數,及所欲比較之位數 N
輸出資料:照條件敘述列印出來
這個條件要包含:
(1)由大而小列印出來
(2)由小而大列印出來
(3)第 N 位數之最大者
(4)第 N 位數之最小者
(5)取任意連續二項而比較其大小
請你輸入要比較數字總共的數量 (大於2 ,小於10):4
請輸入你要比較的數字(需大於等於1000):237
請輸入你要比較的數字(需大於等於1000):126
請輸入你要比較的數字(需大於等於1000):3175
請輸入你要比較的數字(需大於等於1000):1167
====由大而小====
3175
1167
237
126
====由小而大====
126
237
1167
3175
==== 4 位數中最大者 ====
3175
==== 4 位數中最小者 ====
126
====數字中第2,3 位數中最大者 ====
======================
("237'37'", "126'26'", "3175'17'", "1167'16'")
======================
["3175'17'", "1167'16'", "126'26'", "237'37'"]
最大者 = 237'37'
>>>
沒有留言:
張貼留言