当前位置: 首页 > 编程日记 > 正文

python嵩天课后思考题_Python语言程序设计基础(第二版)嵩天等课后习题答案

第一次博文 Time:2018年04月28日 星期六 11:37

二次补充 2018年05月02日

第一章 程序设计基本方法 P29

# 1.1字符串的拼接

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

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

print("世界这么大,{}想去{}看看。".format(str1,str2))1234

# 1.2整数序列求和

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

sum = 0

for i in range(int(n)):#或者调和函数eval(n)

print(i,end = ' ')

sum = sum + i+1

print("1到N求和结果为:",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程序实例解析

# ---------------温度转换程序1.1 P35-------------------------#

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

if TempStr[-1] in ['F','f']:

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

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

elif TempStr[-1] in ['C','c']:

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

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

else:

print("输入格式错误")12345678910

# -----------------循环输入----------------------------------#

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

while TempStr[-1] not in ['N','n']:

if TempStr[-1] in ['F','f']:

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

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

elif TempStr[-1] in ['C','c']:

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

print("摄氏温度{}转换为华氏温度是:{:.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

# ----------------------------长度转换------------------#

# 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

第三章 基本数据类型

天天向上的力量

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

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

一年中每天提升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

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 问工作日多努力才能达到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("每天的努力应达到:{:.3f}".format(dayfactor))12345678910111213

第四章 程序的控制结构 P121

# 4.1 猜数字游戏

k = 5

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

tem = 0

while x != 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("请随意输入一行字符,包含字母,数字,空格或其他字符:")

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}个,数字{1}个,空格{2}个,其他字符{3}个".format(c,n,b,o))12345678910111213

# 4.3 最大公约数的计算

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

x,y = m,n

r = m % n

while r != 0:

m,n = n,r

r = m % n

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

# 4.4 猜数游戏续

import random

k = random.randint(0,100)

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

tem = 0

while x != k:

tem += 1

if(x > k):

print("遗憾,太大了")

else:

print("遗憾,太小了")

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

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

# 4.5 猜数字续

import random

while True:

try:

k = random.randint(0, 100)

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

tem = 0

while x != k:

tem += 1

if (x > k):

print("遗憾,太大了")

else:

print("遗憾,太小了")

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

except:

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

else:

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

break1234567891011121314151617181920

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

import random

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

times = 1000*1000  # 尝试次数

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

第六章 组合数据类型 P180

6.1要求

编写程序,在16个字符大小写和9个数字组成的列表中随机生成10个8为密码。

#first 1 随机密码生成

# 导入random库,后续生成0~61之间的随机整数

import random

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

strs = []

# 添加字符

for i in (65,97):

for j in range(26):

strs += chr(i+j)

# 添加数字

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重复元素判定

编写一个函数,接受列表作为参数,如果一个元素在列表中出现了不知一次,则返回True,但不要改变原来列表的值。同时编写调用这个函数和测试结果的程序。

思路:利用集合的无重复性实现

#second 2 重复元素判定

def testReEle(lis):

tem = set(lis)

if len(tem) == len(lis):

print('True')

else:

print('False')

def getList():

lis = []

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

while ch != '':

lis.append(ch)

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

testReEle(lis)

getList()123456789101112131415

6.3文本字符分析

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

# 文本字符分析

str = input("请输入要分析的字符串,回车表示结束:")

while str != '':

# 创建字典类型保存结果

counts = {}

# 扫描字符串,统计出现频率

for ch in str:

counts[ch] = counts.get(ch,0) + 1

# 改变类型为列表类型,按照出现频率降序排列

items = list(counts.items())

# 利用sort函数排序

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("请输入要分析的字符串,回车表示结束:")1234567891011121314151617

6.5 生日悖论分析

# 生日驳论分析 样本太大时,运行时间会相应延长

# 思路:利用随机函数随机生成1~365中随机数字,以列表存储生成的23个数字,利用集合判断是否重复

#       大样本分析中,出现重复count+1,最后统计出现重复的数据所占的比例

import random

# 大样本次数

times = 1000*1000

# 统计生日相同的次数

count = 0

for i in range(times):

# 创建列表类型,存储23个人的生日在当年的某一天

lis = []

for j in range(23):

lis.append(random.randint(1,365))

# 利用集合的无重复性,转换为集合类型存储

items = set(lis)

if len(items) != len(lis):

count += 1

print("至少两人生日相同的概率:{:.2f}%".format(count/times*100))

---------------------

作者:GTFQAQ

相关文章:

mac OneNote恢复历史记录

由于mac OneNote是个废物&#xff0c;因此还是得通过网页版OneNote或者win版OneNote来操作 网页端OneNote-对应笔记本页面 然后复制过去就可以恢复了

【C#公共帮助类】10年代码,最全的系统帮助类

这个帮助类主要包含&#xff1a;对象转换处理 、分割字符串、截取字符串、删除最后结尾的一个逗号、 删除最后结尾的指定字符后的字符、 生成指定长度的字符串、 生成日期随机码、 生成随机字母或数、字 截取字符长度、 对象<-->JSON 4.0使用、 对象<-->JSON 2.0使…

三十之惑–面霸的八月(第一部分)

三十之惑 –面霸的八月 题记&#xff1a; 三十几岁了&#xff0c;从sina大学肄业后&#xff0c;在外面漂泊&#xff0c;不好不坏。 从好的角度讲&#xff0c;这几年自己的技术没有减退&#xff0c;偶尔也还能够略有深入&#xff0c;同时能够更多的接触到产品、运营、甚至营销&a…

python小工具封装_python接口自动化(二)——封装需要用到的工具类

封装需要用的工具类&#xff1a;1、封装读取Excel的工具类&#xff0c;这里选用的是pandas&#xff1a;importpandas as pdpath ‘test.xlsx‘sheet_name ‘test_data‘classwith_excel:#构造函数&#xff0c;调用类时就运行def __init__(self, pathNone, sheet_nameNone):if p…

三十之惑–面霸的八月(第二部分)

书接上回&#xff0c;今天叙述小米的面试经历。 这里可能有一些技术理解和技术方案&#xff0c;欢迎讨论。另昨天共计收入7笔共95元&#xff0c;够我喝几杯咖啡了&#xff0c;谢谢所有捐钱的朋友。 如果你心疼我码字辛苦&#xff0c;有钱朋友钱场&#xff0c;没钱的请拉朋友来捧…

Curator Cache

1.Curator Cache 与原生ZooKeeper Wacher区别 原生的ZooKeeper Wacher是一次性的&#xff1a;一个Wacher一旦触发就会被移出&#xff0c;如果你想要反复使用Wacher&#xff0c;就要在Wacher被移除后重新注册&#xff0c;使用起来很麻烦。使用Curator Cache 可以反复使用Wacher了…

程序可以在硬件之间发送吗_你知道硬件、软件工程师之间,还有一个固件工程师吗?...

软件跟硬件之间的界限已经越来越模糊了&#xff0c;那么处于这个灰色地带的&#xff0c;就是固件了。这就分成三类工作者。1、软件工程师一般指做图形界面的程序员&#xff0c;工作内容就是写C、JAVA、Web等。2、硬件工程师当然是指玩电路板的&#xff0c;工作内容就是画原理图…

悲催的跨平台文献管理能力

1.古老的TCP交互 邮箱、FTP、硬盘 2.用现成软件Zotero 免费、跨平台、导入后在Win福昕注释可实时同步mac看看 人生苦短&#xff0c;我用Zotero。。

Mastering Algorithms with C中文版附带源码说明

Mastering Algorithm with C是一本非常经典和独具个性的算法书,主要是从程序员的角度,对算法领域的基本内容,通过C语言进行源码实现,其附带的源码非常详细,对初接触这个领域的程序员很有参考价值.我特地将该书源码的使用方法做了笔记,放在这样,以便日后参考. 下面是该书的封面…

仿qq左滑删除listview_Java基于Swing和Netty仿QQ界面聊天小项目

点击上方 好好学java &#xff0c;选择 星标 公众号重磅资讯、干货&#xff0c;第一时间送达今日推荐&#xff1a;硬刚一周&#xff0c;3W字总结&#xff0c;一年的经验告诉你如何准备校招&#xff01;个人原创100W访问量博客&#xff1a;点击前往&#xff0c;查看更多来源&…

[BZOJ1602] [Usaco2008 Oct] 牧场行走 (LCA)

Description N头牛&#xff08;2<n<1000&#xff09;别人被标记为1到n&#xff0c;在同样被标记1到n的n块土地上吃草&#xff0c;第i头牛在第i块牧场吃草。 这n块土地被n-1条边连接。 奶牛可以在边上行走&#xff0c;第i条边连接第Ai&#xff0c;Bi块牧场&#xff0c;第i…

大数据中用到的新的数据类型bigint、decimal、smallint、tinyint

在对比oracle数据库和大数据库的时候&#xff0c;发现了几个用以存放数字的新的类型bigint、decimal、smallint、tinyint&#xff0c;为了对比之间的不同&#xff0c;我进行了统计 bigint 可以精确的表示从-263到263-1(即从-9,223,372,036,854,775,808到 9,223,372,036,854,77…

[综合面试] 计算机面试书籍与求职网站推荐

一、推荐书籍 计算机的好书挺多的&#xff0c;我买了也有四五十本&#xff0c;也花了不少钱&#xff0c;但是这些投资都是值的&#xff0c;好好看一下这些书&#xff0c;让自己找工作时的薪水涨个几千是没问题的。当然&#xff0c;也有些书是电子版的。我是c方向的&#xff0c;…

python在工厂中的运用_Python常见工厂函数用法示例

工厂函数&#xff1a;能够产生类实例的内建函数。工厂函数是指这些内建函数都是类对象&#xff0c; 当调用它们时&#xff0c;实际上是创建了一个类实例。Python中的工厂函数举例如下&#xff1a;1. int(),long(),float(),complex(),bool()>>> aint(9.9)>>> …

Java Random()函数生成指定范围的随机数

java中随机生成数字&#xff08;指定范围&#xff09; //随机获得0到&#xff08;i-1&#xff09;的一个数 int i ThreadLocalRandom.current().nextInt(i)&#xff1b;

删除链表中的重复项

方法一&#xff1a;时间优先建立一个hash_set&#xff0c;key为链表中已经遍历的节点内容&#xff0c;开始时为空。从头开始遍历链表中的节点&#xff1a;- 如果节点内容已经在hash_set中存在&#xff0c;则删除此节点&#xff0c;继续向后遍历&#xff1b;- 如果节点内容不在h…

python提取文件名数字_在Python中从文件名提取扩展名

是否有从文件名中提取扩展名的功能&#xff1f;#1楼一种选择可能是与点分开&#xff1a;>>> filename "example.jpeg">>> filename.split(".")[-1]jpeg文件没有扩展名时没有错误&#xff1a;>>> "filename".split(&…

imagick API 中文说明

下面是 imagick API 中文说明 &#xff1a; imagick 类 imagick::adaptiveblurimage 向图像中添加 adaptive 模糊滤镜 imagick::adaptiveresizeimage 自适应调整图像数据依赖关系 imagick::adaptivesharpenimage自适应锐化图像 imagick::adaptivethresholdimage 基于范围的选择…

利用dom4j将实体类转换为对应的xml报文

利用dom4j生成xml报文 目标格式&#xff1a; <?xml version"1.0" encoding"GBK"?><Packet type"REQUEST" version"1.0"><Head><RequestType>C03</RequestType><UserCode>BOCIJS</UserCode…

JSP--JavaBean

JSP 最强有力的一个方面就是能够使用 JavaBean 组件。 按照 Sun 公司的定义&#xff0c; JavaBean是一个可重复使用的软件组件。实际上 JavaBean 是一种 Java 类&#xff0c;通过封装属性和方法成为具有某种功能或者处理某些业务的对象&#xff0c;简称 Bean。 一个基本的 JSP …

python 速度矢量_最近邻搜索4D空间python快速-矢量化

For each observation in X (there are 20) I want to get the k(3) nearest neighbors.How to make this fast to support up to 3 to 4 million rows?Is it possible to speed up the loop iterating over the elements? Maybe via numpy, numba or some kind of vectoriza…

使用ajax不刷新页面获取、操作数据

在使用jsp或html时&#xff0c;利用ajax达到不刷新页面就可以获取、操作数据。 首先上代码 &#xff08;htmljs&#xff09; 在此处需要引入jquery插件 <!-- 这是页面部分 html--> <body><div style"width:100%;height:30px; float:left"><in…

C/C++面试题分享

1、指针和引用的区别&#xff1f; 答&#xff1a;引用是在C中引入的。它们之间的区别有&#xff1a; &#xff08;1&#xff09; 非空区别&#xff1a;指针可以为空&#xff0c;而引用不能为空 &#xff08;2&#xff09; 可修改区别&#xff1a;如果指针不是常指针…

js增加属性_前端js基础2

JavaScriptECMAScript(ES):规定了js的一些基础的核心知识(变量、数据类型、语法规范、操作语句等) 3/56/7 说出ES5和ES6的区别&#xff1f; DOM&#xff1a;document object model 文档对象模型&#xff0c;里面提供了一些属性和方法&#xff0c;可以让我们操作页面中的元素 BO…

附加的操作系统服务

select &#xff1a;等待I/O实现threading&#xff1a;高层次的线程接口thread&#xff1a;多线程调度dummy_threading:提供threading模块的副本接口dummy——thread&#xff1a;提供thread模块的副本接口mutiprocessing&#xff1a;在全局调度锁下使用子进程mmap&#xff1a;内…

使用myeclipse的第一步

使用myeclipse的第一步 将以下代码copy放在一个包中运行&#xff0c;然后在控制台输入任意字符&#xff0c;回车&#xff0c;然后控制台打印一串密匙&#xff0c;这里你输入的就是账号&#xff0c;控制台返回的就是注册码&#xff0c;点击MyEclipse->Subscription *** 输入…

一道题弄明白二维数组的指针

#include<stdio.h> int main(int args,char ** argv) {int map[3][3]{{1,2,3},{4,5,6},{7,8,9}};int **pMap(int **)map;printf("%d\n",map);//数组的首地址printf("%d\n",*(map1));//数组第二行首地址printf("%d\n",*map1);//数组首行的第…

Linux网络编程--进程间通信(一)

进程间通信简介&#xff08;摘自《Linux网络编程》p85&#xff09; AT&T 在 UNIX System V 中引入了几种新的进程通讯方式&#xff0c;即消息队列&#xff08; MessageQueues&#xff09;&#xff0c;信号量&#xff08; semaphores&#xff09;和共享内存&#xff08; sha…

mysql 行号_PQ获取TABLE的单一值作为条件查询MySQL返回数据

下午&#xff0c;我正爽歪歪地喝着咖啡&#xff0c;看着Power BI每秒钟刷新一次&#xff0c;静静等待某个分公司完成本月绩效任务&#xff0c;自动调用Python在钉钉群中发送喜报&#xff1a;紧接着再次调用Python将Power BI云端报告中的各分公司最新完成率数据和柱状图截图发在…

UUID的使用及其原理

今天敲项目要用UUID&#xff0c;想起之前老师告诉UUID的使用&#xff0c;但没说具体的生成逻辑&#xff0c;于是我进行了百度 首先&#xff0c;UUID的使用&#xff1a; //生成随机的UUID String uuid UUID.randomUUID().toString().replaceAll("-", "")…