第4章 程式的控制結構

2021-09-24 05:49:38 字數 2732 閱讀 1038

0401.輸入乙個年份,輸出是否為閏年。#閏年條件:能被4整除但不能被100整除,或者能被400整除的年份都是閏年。

#0401

n = eval(input())

if (n % 4 == 0 and n % 100 != 0) or n % 400 == 0:

print('{}年是閏年'.format(n))

else:

print('{}年不是閏年'.format(n))

0402.最大公約數計算。獲取兩個整數,求出這兩個整數的最大公約數和最小公倍數,最大公約數的計算一般使用輾轉相除法,最小公倍數則使用兩個數的乘積除以最大公約數。

#0402

a,b = input().split()#輸入兩數,以空格隔開

a,b = int(a),int(b)

mul = a*b

e = max(a,b)%min(a,b)#餘數e

#輾轉相除法

while e != 0:

a,b = min(a,b),e

e = max(a,b)%min(a,b)

print("最大公約數是:{} 最小公倍數是:{}"\

.format(min(a,b),int(mul/(min(a,b)))))

0403.統計不同字元個數。使用者從鍵盤鍵入一行字元,編寫乙個程式,統計並輸出其中英文本元、數字、空格和其他字元的個數。

#0403

str1 = input()

n1,n2,n3,n4 = 0,0,0,0

for c in str1:

#中文的漢字會被 isalpha 判定為 true,

#如果想區分中文和英文可以使用 unicode。中文的範圍為:['/u4e00','/u9fa5']

if c.encode('utf-8').isalpha():

n1 += 1

elif c.isdigit():

n2 += 1

elif c.isspace():

n3 += 1

else:

n4 += 1

print("英文本元數:{} 數字數:{} 空格數:{} 其他字元數:{}"\

.format(n1,n2,n3,n4))

0404.猜數遊戲續。當使用者輸入的不是整數(如字母、浮點數等)時,程式會終止執行退出。改編題目1中的程式,當使用者輸入出錯時給出「輸入內容必須為整數!」的提示,並讓使用者重新輸入。

#0404

import random

target = random.randint(1,1000)

count = 0

while true:

try:

guess = eval(input('請輸入乙個猜測的整數(1至1000):'))

a = bin(guess)#避免出現元組、字典、浮點數等型別的的資料

except:

print('輸入內容必須為整數!請重試,本次不計入猜測次數。')

continue

count = count + 1

if guess > target:

print('猜大了')

elif guess < target:

print('猜小了')

else:

print('猜對了')

break

print("此輪的猜測次數是:", count)

0405.羊車門問題。有三扇關閉的門,一扇門後面停著汽車,其餘門後是山羊,只有主持人知道每扇門後面是什麼。參賽者可以選擇一扇門,在開啟它之前,主持人會開啟另外一扇門,露出門後的山羊,然後允許參賽者更換自己的選擇。請問,參賽者更換選擇後能否增加猜中汽車的機會?——這是乙個經典問題。請使用random庫對這個隨機事件進行**,分別輸出參賽者改變選擇和堅持選擇獲勝的概率。

#0405

from random import *

def choices():

nl = [0,1,2]#0,1,2分別對應'羊','羊','汽車'

nl1 = [0,1]#主持人的選擇範圍

cddt = choice(nl)#參賽者的選擇

if cddt == 2:

host = choice(nl1)#主持人開啟的門

else:

nl1.remove(cddt)

host = choice(nl1)

nl.remove(cddt)

nl.remove(host)

return cddt,nl[0]

while true:

n = input("請輸入試驗次數(按q退出):")

if n == 'q':

print("試驗結束!")

break

n = int(n)

count1 = 0#不改變選擇,猜中汽車的次數

count2 = 0#改變選擇,猜中汽車的次數

for i in range(n):

a,b = choices()

if a == 2:

count1 += 1

if b == 2:

count2 += 1

print("堅持選擇獲勝概率:".format(count1/n))

print("改變選擇獲勝概率:".format(count2/n))

第2章程式的基本結構

2.1初始化 使用如下 建立乙個程式例項 from flask import flask 2.2路由和檢視函式 def index return 稱index 為檢視函式,其返回的響應可以是包含html的簡單字串,也可以是複雜的表單。但一般不在python 中嵌入響應字串,因為會導致 難以維護。支援...

第2章 程式的版式

一 空行 1 每個類宣告和函式定義結束之後都要加空行 2 邏輯上密切相關的語句之間不加空行 二 行 1 一行 只做一件事 這在python中顯得尤為重要 2 if for while do等語句獨自佔一行,不論有多少執行語句都要加 3 盡可能在定義變數的同時初始化該變數 三 行內的空格 1 關鍵字之...

3章 程式流程控制

運算子 和 分別是短路和 短路或運算子。if 和 if else 語句用於條件選擇。switch語句由乙個到多個case語句組成。switch語句中的值可以是byte shot int,或 char型別。case語句的值必須是乙個常量表示式或字面量。while迴圈用於重複執行任務。while迴圈體中...