python

loop

2018/10/12 陳惴棋

目錄

  • 複習
  • 上周練習解答
  • for
  • while
  • list

複習

格式化列印

  • 整數:d
  • 浮點:f
  • 字串:s

格式化列印


a=1
b=2.3
c='9487-XD'
print('整數:%5d'%a)    #固定列印5字元
print('小數:%6.2f'%b)  #固定列印6字元,小數後2位
print('車號:%4s'%c)    #固定列印4字元
						

格式化列印


a=1
b=2.3
c='9487-XD'
print('整數:{:5d}'.format(a))
print('小數:{:6.2f}'.format(b))
print('車號:{:4s}'.format(c))
						

邏輯運算

  • and
  • or
  • not

list

串列名稱=[元素1,元素2,元素3, ... ...]


list1=[1,2,3]
list2=['QAQ','OWO','>.<']
list3=[1,'NTNUCIC',True]
						

range函式

串列變數=range(整數1)

串列變數=range(整數1,整數2)

串列變數=range(整數1,整數2,整數3)


list1=range(5)     #[0,1,2,3,4],0~n1-1,間隔1
list2=range(2,7)   #[2,3,4,5,6,7],n1~n2-1,間隔1
list3=range(2,7,2) #[2,4,6]
#n1<n2,n3>0 : n1~n2-1,間隔n3
#n1>n2,n3<0 : n1~n2+1,間隔n3
						

for


for i in range(5):
    #重複執行
    #注意縮排
						

while


while(True):
    #重複執行
    #注意縮排
    #小心無窮迴圈
						

break


for i in range(5):
    break
    #break離開
    #注意縮排
						

continue


for i in range(5):
    continue
    #continue下面都不會執行
    #從下一次繼續執行
    #注意縮排
						

while迴圈-防呆

輸入整數


while True:
    try:
        a=int(input())
        break
    except:
        print('NOT INT TYPE')
						

上周練習解答

輸入整數N

輸出N的質因數


n=int(input())
for i in range(2,n+1):
    if(n%i==0):
        c=0
        for j in range(2,i):
            if(i%j==0):
                c+=1
        if(c==0):
            print(i)
						

上周練習解答

輸入姓名學號及數個成績(直到輸入-1結束)

輸出姓名學號、成績數量、平均成績


str1=input('輸入姓名:')
str2=input('輸入學號:')
print('輸入成績(輸入-1結束)')
sum=0
num=0
a=int(input())
while (a!=-1):
    sum+=a
    num+=1
    a=int(input())
print('姓名:{}'.format(str1))
print('學號:{}'.format(str2))
print('成績數量:{}'.format(num))
if(num):
    print('平均成績:{:6.2f}'.format(sum/num))
						

for

for

輸入一正整數N

輸出N的標準分解式

for

輸入一個正整數N

輸出N!

for

輸入兩正整數M,N

輸出最大公因數

while

while

輸入一正整數N

輸出小於N的所有質數

while

輸入一個正整數N

輸出f(N)


費氏數列f(N)定義如下

f(0)=0, f(1)=1, f(n)=f(n-1)+f(n-2)

while

輸入一整數N

輸出比N小的正數且是(2的倍數或3的倍數)

list

進階操作

list


list1[n1]           #取出第n1個元素
list1[n1:n2]        #取出n1~n2-1
list1[n1:n2:n3]     #取出n1~n2-1,間隔n3
del list1[n1:n2]    #刪除n1~n2-1
del list1[n1:n2:n3] #刪除n1~n2-1,間隔n3
len(list1)          #取得串列元素數
min(list1)          #取得最小值
max(list1)          #取得最大值

						

list


list1.index(n1)         #第一次出現n1的index值
list1.count(n1)         #元素n1出現次數
list1.append(n1)        #將n1做為元素加入list1最後
list1.extend(x)         #將x中的元素逐一加入list1最後
list1.insert(index1,n1) #在位置index1加入n1元素
list1.pop()             #取出最後一個元素並從串列中移除
list1.remove(n1)        #移除第一個n1元素
list1.reverse()         #反轉串列順序
list1.sort()            #由小到大排序

						

練習

練習

輸入非0整數(輸入0結束)

輸出正數(依輸入順序)


輸入防呆

練習

輸入5整數

輸出排序後的數列

輸入1整數(輸入X離開)

輸出最後5個輸入的整數排序後的數列

END