1. 程式人生 > >9.25python程式控制結構總結和作業

9.25python程式控制結構總結和作業

看不進去書,寫寫部落格幫助理解,在物件的安利下,第一次用markdown寫部落格,好有趣。

1.條件表示式

1.1關係運算符
條件表示式不允許使用賦值運算子"="

>>> if a=3
SyntaxError: invalid syntax

1.2邏輯運算子
and----串聯
or------並聯
not----短路
用指定分隔符分割字元

def Join(chlist,sep=':'):
    return sep.join(chlist)
a=Join(['5','6','5','3','1'])
print(a)

2.選擇結構

1.雙分支選擇結構解決雞兔同籠問題

jitu,tui=map(int,input('請輸入雞兔總數和腿總數').split())
tu=(tui-jitu*2)/2
if int(tu)==tu:
    print('雞:{0},兔:{1}'.format((jitu-tu),int(tu)))
else:
    print('資料錯誤')

2.多分枝選擇結構
巢狀時注意縮排

3.迴圈結構

對於有else子句的迴圈結構,如果迴圈因為表示式不成立或序列遍歷結束而自然結束,執行else語句。如果因為執行break語句提前結束,不會執行else語句。

作業題
1.生成五十個隨機整數數的列表,從後向前刪除所有奇數

import random
x=
[random.randint(0,100) for i in range(50)] print(x) i=len(x)-1 while i>=0: if x[i]%2==1: del x[i] i-=1 print(x)

2.生成20隨機整數列表,對其中偶數下標進行降序排列,奇數下標的元素不變(使用切片)

import random
x=[random.randint(0,100) for i in range(20)]
print(x)
y=x[::2]
y.sort(reverse=True)
z=x[1::2]
print(y)
print(z)

True的T大寫!
3.用兩種方法計算100以內所有奇數和

x=[i for i in range(1,100) if i%2==1]
print(sum(x))

print(sum(range(1,100)[::2]))

4.編寫輸出所有由1,2,3,4這4個數字組成的素數,並保證每個數字只使用一次

a=[]
b=[]
for i in range(1,5):
    for j in range(1,5):
        for n in range(1,5):
            for k in [1,3]:
                if k != n and k != j and k!= i and n!= j and n!=i and j!=i:
                    a.append(i*1000+j*100+n*10+k)
print (a)
import math
print([a[x] for x in range(0,len(a)) if 0 not in [a[x]%d for d in range(2,int(math.sqrt(a[x]))+1)]])

執行結果
[1243, 1423, 2143, 2341, 2413, 2431, 3241, 3421, 4123, 4213, 4231, 4321]
[1423, 2143, 2341, 4231]
為了驗證結果可不可靠寫了一個簡單的驗證素數的程式碼:

import math
x=int(input('enter x:'))
if 0 not in [x%d for d in range(2,int(math.sqrt(x))+1)]:
    print('yes')
else:
    print('no')

5.編寫程式實現分段函式

x=int(input('enter x:'))
if x<0 or x>=20:
    print(0)
elif 0<=x<5:
    print(x)
elif 5<=x<10:
    print(3*x-5)
else:
    print(0.5*x-2)

輸入的x為string型別,所以前面要加一個int
否則出現報錯
TypeError: ‘<’ not supported between instances of ‘str’ and ‘int’