Python语言程序设计基础(第二版)嵩天等课后习题答案_第1页
Python语言程序设计基础(第二版)嵩天等课后习题答案_第2页
Python语言程序设计基础(第二版)嵩天等课后习题答案_第3页
Python语言程序设计基础(第二版)嵩天等课后习题答案_第4页
Python语言程序设计基础(第二版)嵩天等课后习题答案_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第一章程序设计基本方法P29#1.1字符串的拼接

str1=input("请输入一个人的名字:")

str2=input("请输入一个地点:")

print("世界这么大,{}想去{}看看。".format(str1,str2))1234#1.2整数序列求和

n=input("请输入一个整数N:")

sum=0

foriinrange(int(n)):#或者调和函数eval(n)

print(i,end='')

sum=sum+i+1

print("1到N求和结果为:",sum)1234567#1.39*9乘法表

#版本一

foriinrange(1,10):

forminrange(1,i+1):

sum=i*m

ifm<i:

ifsum<10:

print(m,'*',i,"={}".format(sum),end='

')

else:

print(m,'*',i,'=',sum,end='')

else:

print(m,'*',i,'=',sum)

#版本二

foriinrange(1,10):

forjinrange(1,i+1):

print("{}*{}={:2}".format(j,i,i*j),end='')

print('')1234567891011121314151617#---------1.4计算1+2!+3!+4!+...+10!------------#

sum,tmp=0,1

foriinrange(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

foriinrange(5,0,-1):

n=(n+1)*2

#n=(n+1)<<1左移一位乘以2

print(n)123456#--------1.6健康食谱输出------------------------#

diet=['西红柿','土豆','鸡蛋','黄瓜','青菜']

foriinrange(5):

forjinrange(5):

if(i!=j):

print(diet[i],diet[j],sep='炒')123456#--------1.7绘制五角星--------------------------#

fromturtleimport*

##fillcolor("red")

color('red','yellow')#color('线条颜色','填充颜色')

begin_fill()

whileTrue:

forward(200)

right(144)

ifabs(pos())<1:

break

end_fill()1234567891011#------1.8太阳花的绘制--------------------------#

fromturtleimport*

color('red','yellow')

begin_fill()

whileTrue:

forward(200)

left(170)

ifabs(pos())<1:

break

end_fill()

done()1234567891011第二章Python程序实例解析#---------------温度转换程序1.1P35-------------------------#

TempStr=input("请输入带有符号的温度值:")

ifTempStr[-1]in['F','f']:

C=(eval(TempStr[0:-1])-32)/1.8

print("华氏温度{}转换为摄氏度温度是:{:.2f}C".format(TempStr,C))

elifTempStr[-1]in['C','c']:

F=eval(TempStr[0:-1])*1.8+32

print("摄氏温度{}转换为华氏温度是:{:.2f}F".format(TempStr,F))

else:

print("输入格式错误")12345678910#-----------------循环输入----------------------------------#

TempStr=input("请输入带有符号的温度值:")

whileTempStr[-1]notin['N','n']:

ifTempStr[-1]in['F','f']:

C=(eval(TempStr[0:-1])-32)/1.8

print("华氏温度{}转换为摄氏度温度是:{:.2f}C".format(TempStr,C))

elifTempStr[-1]in['C','c']:

F=eval(TempStr[0:-1])*1.8+32

print("摄氏温度{}转换为华氏温度是:{:.2f}F".format(TempStr,F))

else:

print("输入格式错误")

TempStr=input("请输入带有符号的温度值:")123456789101112#--------------------------正方形的绘制---------------------------------#im

importturtleast

t.pensize(3)

foriinrange(1,5):

t.fd(100)

t.setheading(90*i)

t.done()1234567#--------------------------六边形的绘制---------------------------------#im

importturtleas

t

t.pensize(3)

fori

inrange(6):

t.fd(100)

t.seth(60+60*i)

t.done()1234567#--------------------------叠边形的绘制---------------------------------#im

importturtleas

t

t.pensize(3)

fori

inrange(9):

t.fd(150)

t.seth(80+80*i)

t.done()1234567#--------------------------同切圆的绘制---------------------------------#im

importturtleas

t

t.pensize(3)

foriinrange(4):

t.circle(50+i*10)

t.done()123456#----------------------------长度转换------------------#

#1米=39.37英寸

le=input()

ifle[-1]in['M','m']:

temp=eval(le[0:-1])*39.37

print("{:.3f}in".format(temp))

elifle[-2:]in['in','IN']:

temp=eval(le[0:-2])/39.37

print("{:.3f}m".format(temp))

else:

print("输入格式错误")1234567891011#------------------------多彩蟒蛇的绘制---------------------------------#

importturtleast

week=['black','grey','darkgreen','gold','violet','purple','green','red']

defdrawSnake(r,angle,length):

t.seth(-40)

foriinrange(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第三章基本数据类型

天天向上的力量

在一年中,如果每天进步》》,那么一年下来会进步到多少呢?

在一年中,如果每天退步》》,那么一年下来会倒退到多少呢?一年中每天提升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。

工作日多努力每天的努力应达到:0.019#1.1每天的改变在千分之一P74

importmath

dayup=math.pow((1+0.001),365)

daydown=math.pow((1-0.001),365)

print("一年中每天提升0.001:{:.2f},一年中每天能力下降0.001:{:.2f}".format(dayup,daydown))

123456importmath

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每天的改变在百分之一

importmath

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

foriinrange(365):

ifi%7in[6,0]:

dayup*=(1-dayfactor)

else:

dayup*=(1+dayfactor)

print("向上5天向下2天的力量:{:.2f}。".format(dayup))123456789#1.5问工作日多努力才能达到365天每天都工作的成绩

defdaydayUp(df):

dayup=1.0

foriinrange(365):

ifi%7in[6,0]:

dayup*=(1-0.01)

else:

dayup*=(1+df)

returndayup

dayfactor=0.01

while(daydayUp(dayfactor)<37.78):

dayfactor+=0.001

print("每天的努力应达到:{:.3f}".format(dayfactor))12345678910111213第四章程序的控制结构P121#4.1猜数字游戏

k=5

x=eval(input("请输入0~9之间的整数"))

tem=0

whilex!=k:

tem+=1

if(x>k):

print("遗憾,太大了")

else:

print("遗憾,太小了")

x=eval(input("请输入0~9之间的整数"))

print("预测{}次,你猜中了".format(tem))123456789101112#4.2统计不同字符个数

c,n,b,o=0,0,0,0#c代表字符个数n代表数字个数b代表空格个数o代表其他字符个数

strs=input("请随意输入一行字符,包含字母,数字,空格或其他字符:")

forsinstrs:

iford('a')<=ord(s)<=ord('z')orord('A')<=ord(s)<=ord('Z'):

c+=1

eliford('0')<=ord(s)<=ord('9'):

n+=1

eliford('')==ord(s):

b+=1

else:

o+=1

print("包含字母{0}个,数字{1}个,空格{2}个,其他字符{3}个".format(c,n,b,o))12345678910111213#4.3最大公约数的计算

m,n=eval(input("请输入连个整数,中间以逗号隔开"))

x,y=m,n

r=m%n

whiler!=0:

m,n=n,r

r=m%nprint("{}和{}的最大公约数:{};最小公倍数:{:.0f}".format(x,y,n,x*y/n))123456789#4.4猜数游戏续

importrandom

k=random.randint(0,100)

x=eval(input("请输入0~100之间的整数"))

tem=0

whilex!=k:

tem+=1

if(x>k):

print("遗憾,太大了")

else:

print("遗憾,太小了")

x=eval(input("请输入0~100之间的整数"))

print("预测{}次,你猜中了".format(tem))12345678910111213#4.5猜数字续

importrandom

whileTrue:

try:

k=random.randint(0,100)

x=int(input("请输入0~100之间的整数"))

tem=0

whilex!=k:

tem+=1

if(x>k):

print("遗憾,太大了")

else:

print("遗憾,太小了")

x=eval(input("请输入0~100之间的整数"))

except:

print("输入内容必须为整数!")

else:

print("预测{}次,你猜中了".format(tem))

break1234567891011121314151617181920#4.5羊车门问题思想:大量样本以频率代替概率

importrandom

a=['羊1','羊2','汽车']

times=1000*1000

#尝试次数

first,change=0,0

foriinrange(times):

x=random.choice(a)

#正确答案

y=random.choice(a)

#参赛者选择答案

ifx==y:

#坚持最初的选择

first+=1

else:

#改变选择

change+=1

print("坚持初心获得胜利的概率:{:.2f}%".format(first/times*100))

print("改变初心获得胜利的概率:{:.2f}%".format(change/times*100))1234567891011121314第六章组合数据类型P180

6.1要求

编写程序,在16个字符大小写和9个数字组成的列表中随机生成10个8为密码。#first1随机密码生成#导入random库,后续生成0~61之间的随机整数

importrandom

#新建列表类型存储字符串和数字

strs=[]

#添加字符

foriin(65,97):

forjinrange(26):

strs+=chr(i+j)

#添加数字

foriinrange(10):

strs+=str(i)

#输出10个8位的密码

foriinrange(10):

print("密码",i+1,":",end='')

forjinrange(8):

print(strs[random.randint(0,61)],end='')

print()123456789101112131415161718196.2重复元素判定

编写一个函数,接受列表作为参数,如果一个元素在列表中出现了不知一次,则返回True,但不要改变原来列表的值。同时编写调用这个函数和测试结果的程序。思路:利用集合的无重复性实现#second2重复元素判定

deftestReEle(lis):

tem=set(lis)

iflen(tem)==len(lis):

print('True')

else:

print('False')

defgetList():

lis=[]

ch=input("请输入判定元素,回车表示结束:")

whilech!='':

lis.append(ch)

ch=input("请输入判定元素,回车表示结束:")

testReEle(lis)

getList()1234567891011121314156.3文本字符分析

编写程序接收字符串,按照字符出现频率的降序打印字母。#文本字符分析

str=input("请输入要分析的字符串,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论