日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

Python語言程序設(shè)計基礎(chǔ)(第二版)嵩天等課后習(xí)題答案

 gexian 2019-03-22

第一次博文 Time:2018年04月28日 星期六 11:37
二次補充 2018年05月02日
第一章 程序設(shè)計基本方法 P29

# 1.1字符串的拼接
str1 = input("請輸入一個人的名字:")
str2 = input("請輸入一個地點:")
print("世界這么大,{}想去{}看看。".format(str1,str2))1234

# 1.2整數(shù)序列求和
n = input("請輸入一個整數(shù)N:")
sum = 0
for i in range(int(n)):#或者調(diào)和函數(shù)eval(n)
   print(i,end = ' ')
   sum = sum + i+1
print("1到N求和結(jié)果為:",sum)1234567

# 1.3 9*9乘法表
# 版本一
for i in range(1,10):
   for m in range(1,i+1):
       sum = i*m
       if m < i:
           if sum < 10:
               print(m,'*',i,"= {}".format(sum),end = '  ')
           else:
               print(m,'*',i,'=',sum,end = ' ')
       else:
           print(m,'*',i,'=',sum)
# 版本二
for i in range(1,10):
   for j in range(1,i+1):
       print("{} * {} = {:2}".format(j,i,i*j),end = ' ')
   print('')1234567891011121314151617

# ---------1.4 計算1+2!+3!+4!+...+10!------------#
sum,tmp = 0,1
for i in range(1,11):
   tmp *= i
   sum += tmp
print("1+2!+3!+4!+...+10!=",sum)123456

# ---------1.5 猴子吃桃問題 ----------------------#
# list(range(5,0,-1)) -----  [5, 4, 3, 2, 1]
n = 1
for i in range(5,0,-1):
   n = (n+1)*2  #n = (n+1)<<1 左移一位乘以2
print(n)123456

# --------1.6 健康食譜輸出 ------------------------#
diet = ['西紅柿','土豆','雞蛋','黃瓜','青菜']
for i in range(5):
   for j in range(5):
       if (i != j):
           print(diet[i],diet[j],sep = '炒')123456

# --------1.7 繪制五角星 --------------------------#
from turtle import *
##fillcolor("red")
color('red','yellow') #color('線條顏色','填充顏色')
begin_fill()
while True:
   forward(200)
   right(144)
   if abs(pos()) < 1:
       break
end_fill()1234567891011

# ------1.8 太陽花的繪制 --------------------------#
from turtle import *
color('red','yellow')
begin_fill()
while True:
   forward(200)
   left(170)
   if abs(pos()) <1:
       break
end_fill()
done()1234567891011

第二章 Python程序?qū)嵗馕?/p>

# ---------------溫度轉(zhuǎn)換程序1.1 P35-------------------------#
TempStr = input("請輸入帶有符號的溫度值:")
if TempStr[-1] in ['F','f']:
   C = (eval(TempStr[0:-1]) - 32) / 1.8
   print("華氏溫度{}轉(zhuǎn)換為攝氏度溫度是:{:.2f}C".format(TempStr,C))
elif TempStr[-1] in ['C','c']:
   F = eval(TempStr[0:-1])*1.8 + 32
   print("攝氏溫度{}轉(zhuǎn)換為華氏溫度是:{:.2f}F".format(TempStr,F))
else:
   print("輸入格式錯誤")12345678910

# -----------------循環(huán)輸入----------------------------------#
TempStr = input("請輸入帶有符號的溫度值:")
while TempStr[-1] not in ['N','n']:
   if TempStr[-1] in ['F','f']:
       C = (eval(TempStr[0:-1]) - 32) / 1.8
       print("華氏溫度{}轉(zhuǎn)換為攝氏度溫度是:{:.2f}C".format(TempStr,C))
   elif TempStr[-1] in ['C','c']:
       F = eval(TempStr[0:-1])*1.8 + 32
       print("攝氏溫度{}轉(zhuǎn)換為華氏溫度是:{:.2f}F".format(TempStr,F))
   else:
       print("輸入格式錯誤")
   TempStr = input("請輸入帶有符號的溫度值:")123456789101112

# --------------------------正方形的繪制---------------------------------#im
import turtle as t
t.pensize(3)
for i in range(1,5):
   t.fd(100)
   t.setheading(90*i)
t.done()1234567

# --------------------------六邊形的繪制---------------------------------#im
import turtle as  t
t.pensize(3)
for i  in range(6):
   t.fd(100)
   t.seth(60+60*i)
t.done()1234567

# --------------------------疊邊形的繪制---------------------------------#im
import turtle as  t
t.pensize(3)
for i  in range(9):
   t.fd(150)
   t.seth(80+80*i)
t.done()1234567

# --------------------------同切圓的繪制---------------------------------#im
import turtle as  t
t.pensize(3)
for i in range(4):
   t.circle(50+i*10)
t.done()123456

# ----------------------------長度轉(zhuǎn)換------------------#
# 1米 = 39.37英寸
le = input()
if le[-1] in ['M','m']:
   temp = eval(le[0:-1]) * 39.37
   print("{:.3f}in".format(temp))
elif le[-2:] in ['in','IN']:
   temp = eval(le[0:-2]) / 39.37
   print("{:.3f}m".format(temp))
else:
   print("輸入格式錯誤")1234567891011

# ------------------------多彩蟒蛇的繪制---------------------------------#
import turtle as t
week = ['black','grey','darkgreen','gold','violet','purple','green','red']
def drawSnake(r,angle,length):
   t.seth(-40)
   for i in range(length):
       t.pencolor(week[i%8])
       t.circle(r,angle)
       t.pencolor(week[(i+1)%8])
       t.circle(-r,angle)
   t.circle(r,angle/2)
   t.fd(40)
   t.circle(16,180)
   t.fd(40*2/3)
t.setup(650,350)
t.penup()
t.fd(-250)
t.pendown()
t.pensize(25)
drawSnake(40,80,9)
t.done()123456789101112131415161718192021

第三章 基本數(shù)據(jù)類型
天天向上的力量
在一年中,如果每天進步》》,那么一年下來會進步到多少呢?
在一年中,如果每天退步》》,那么一年下來會倒退到多少呢?

一年中每天提升0.001:1.44,一年中每天能力下降0.001:0.69
一年中每天提升0.005:6.17,一年中每天能力下降0.005:0.16
一年中每天提升0.01:37.78,一年中每天能力下降0.01:0.03
向上5天向下2天的力量:4.63。
工作日多努力每天的努力應(yīng)達(dá)到:0.019

# 1.1 每天的改變在千分之一 P74
import math
dayup = math.pow((1+0.001),365)
daydown = math.pow((1-0.001),365)
print("一年中每天提升0.001:{:.2f},一年中每天能力下降0.001:{:.2f}".format(dayup,daydown))
123456

import math
dayup = math.pow((1+0.005),365)
daydown = math.pow((1-0.005),365)
print("一年中每天提升0.005:{:.2f},一年中每天能力下降0.005:{:.2f}".format(dayup,daydown))1234

#1.3 每天的改變在百分之一
import math
dayfactor = 0.01
dayup = math.pow((1+dayfactor),365)
daydown = math.pow((1-dayfactor),365)
print("一年中每天提升0.01:{:.2f},一年中每天能力下降0.01:{:.2f}".format(dayup,daydown))123456

#1.4 在每年的365天中,每周工作5個工作日,工作日每天提升0.01,
#休息兩天,休息時每天下降0.01
dayup,dayfactor = 1.0,0.01
for i in range(365):
   if i%7 in [6,0]:
       dayup *= (1 - dayfactor)
   else:
       dayup *= (1 + dayfactor)
print("向上5天向下2天的力量:{:.2f}。".format(dayup))123456789

#1.5 問工作日多努力才能達(dá)到365天每天都工作的成績
def daydayUp(df):
   dayup = 1.0
   for i in range(365):
       if i%7 in [6,0]:
           dayup *= (1 - 0.01)
       else:
           dayup *= (1 + df)
   return dayup
dayfactor = 0.01
while(daydayUp(dayfactor) < 37.78):
   dayfactor += 0.001
print("每天的努力應(yīng)達(dá)到:{:.3f}".format(dayfactor))12345678910111213

第四章 程序的控制結(jié)構(gòu) P121

# 4.1 猜數(shù)字游戲
k = 5
x = eval(input("請輸入0~9之間的整數(shù)"))
tem = 0
while x != k:
    tem += 1
    if(x > k):
        print("遺憾,太大了")
    else:
        print("遺憾,太小了")
    x = eval(input("請輸入0~9之間的整數(shù)"))
print("預(yù)測{}次,你猜中了".format(tem))123456789101112

# 4.2 統(tǒng)計不同字符個數(shù)
c,n,b,o = 0,0,0,0 # c代表字符個數(shù) n代表數(shù)字個數(shù) b代表空格個數(shù) o代表其他字符個數(shù)
strs = input("請隨意輸入一行字符,包含字母,數(shù)字,空格或其他字符:")
for s in strs:
    if ord('a') <= ord(s) <= ord('z') or ord('A') <= ord(s) <= ord('Z'):
        c += 1
    elif ord('0') <= ord(s) <= ord('9'):
        n += 1
    elif ord(' ') == ord(s):
        b += 1
    else:
        o += 1
print("包含字母{0}個,數(shù)字{1}個,空格{2}個,其他字符{3}個".format(c,n,b,o))12345678910111213

# 4.3 最大公約數(shù)的計算
m,n = eval(input("請輸入連個整數(shù),中間以逗號隔開"))
x,y = m,n
r = m % n
while r != 0:
    m,n = n,r
    r = m % n

print("{}和{}的最大公約數(shù):{};最小公倍數(shù):{:.0f}".format(x,y,n,x*y/n))123456789

# 4.4 猜數(shù)游戲續(xù)
import random
k = random.randint(0,100)
x = eval(input("請輸入0~100之間的整數(shù)"))
tem = 0
while x != k:
    tem += 1
    if(x > k):
        print("遺憾,太大了")
    else:
        print("遺憾,太小了")
    x = eval(input("請輸入0~100之間的整數(shù)"))
print("預(yù)測{}次,你猜中了".format(tem))12345678910111213

# 4.5 猜數(shù)字續(xù)
import random
while True:
    try:
        k = random.randint(0, 100)
        x = int(input("請輸入0~100之間的整數(shù)"))
        tem = 0
        while x != k:
            tem += 1
            if (x > k):
                print("遺憾,太大了")
            else:
                print("遺憾,太小了")
            x = eval(input("請輸入0~100之間的整數(shù)"))

    except:
        print("輸入內(nèi)容必須為整數(shù)!")
    else:
        print("預(yù)測{}次,你猜中了".format(tem))
        break1234567891011121314151617181920

# 4.5 羊車門問題 思想:大量樣本以頻率代替概率
import random
a = ['羊1', '羊2', '汽車']
times = 1000*1000  # 嘗試次數(shù)
first, change = 0, 0
for i in range(times):
    x = random.choice(a)  # 正確答案
    y = random.choice(a)  # 參賽者選擇答案
    if x == y:   # 堅持最初的選擇
        first += 1
    else:         # 改變選擇
        change += 1
print("堅持初心獲得勝利的概率:{:.2f}%".format(first/times*100))
print("改變初心獲得勝利的概率:{:.2f}%".format(change/times*100))1234567891011121314

第六章 組合數(shù)據(jù)類型 P180
6.1要求
    編寫程序,在16個字符大小寫和9個數(shù)字組成的列表中隨機生成10個8為密碼。

#first 1 隨機密碼生成

# 導(dǎo)入random庫,后續(xù)生成0~61之間的隨機整數(shù)
import random
# 新建列表類型存儲字符串和數(shù)字
strs = []
# 添加字符
for i in (65,97):
    for j in range(26):
        strs += chr(i+j)
# 添加數(shù)字
for i in range(10):
    strs += str(i)
# 輸出10個8位的密碼
for i in range(10):
    print("密碼", i+1, ":",end= '')
    for j in range(8):
        print(strs[random.randint(0,61)], end= '')
    print()12345678910111213141516171819

6.2重復(fù)元素判定
編寫一個函數(shù),接受列表作為參數(shù),如果一個元素在列表中出現(xiàn)了不知一次,則返回True,但不要改變原來列表的值。同時編寫調(diào)用這個函數(shù)和測試結(jié)果的程序。

思路:利用集合的無重復(fù)性實現(xiàn)

#second 2 重復(fù)元素判定
def testReEle(lis):
    tem = set(lis)
    if len(tem) == len(lis):
        print('True')
    else:
        print('False')
def getList():
    lis = []
    ch = input("請輸入判定元素,回車表示結(jié)束:")
    while ch != '':
        lis.append(ch)
        ch = input("請輸入判定元素,回車表示結(jié)束:")
    testReEle(lis)
getList()123456789101112131415

6.3文本字符分析
編寫程序接收字符串,按照字符出現(xiàn)頻率的降序打印字母。

# 文本字符分析
str = input("請輸入要分析的字符串,回車表示結(jié)束:")
while str != '':
    # 創(chuàng)建字典類型保存結(jié)果
    counts = {}
    # 掃描字符串,統(tǒng)計出現(xiàn)頻率
    for ch in str:
        counts[ch] = counts.get(ch,0) + 1
    # 改變類型為列表類型,按照出現(xiàn)頻率降序排列
    items = list(counts.items())
    # 利用sort函數(shù)排序
    items.sort(key= lambda x : x[1],reverse= True)
    # 打印輸出
    for i in range(len(items)):
        word, count = items[i]
        print("{0:<10}{1:>5}".format(word, count))
    str = input("請輸入要分析的字符串,回車表示結(jié)束:")1234567891011121314151617

6.5 生日悖論分析

# 生日駁論分析 樣本太大時,運行時間會相應(yīng)延長
# 思路:利用隨機函數(shù)隨機生成1~365中隨機數(shù)字,以列表存儲生成的23個數(shù)字,利用集合判斷是否重復(fù)
#       大樣本分析中,出現(xiàn)重復(fù)count+1,最后統(tǒng)計出現(xiàn)重復(fù)的數(shù)據(jù)所占的比例
import random
# 大樣本次數(shù)
times = 1000*1000
# 統(tǒng)計生日相同的次數(shù)
count = 0
for i in range(times):
    # 創(chuàng)建列表類型,存儲23個人的生日在當(dāng)年的某一天
    lis = []
    for j in range(23):
        lis.append(random.randint(1,365))
    # 利用集合的無重復(fù)性,轉(zhuǎn)換為集合類型存儲
    items = set(lis)
    if len(items) != len(lis):
        count += 1
print("至少兩人生日相同的概率:{:.2f}%".format(count/times*100))
---------------------
作者:GTFQAQ
來源:CSDN
原文:https://blog.csdn.net/gtf215998315/article/details/80118380 

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多