9.25python程式控制結構總結和作業
阿新 • • 發佈:2019-02-05
看不進去書,寫寫部落格幫助理解,在物件的安利下,第一次用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’