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是个废物,因此还是得通过网页版OneNote或者win版OneNote来操作 网页端OneNote-对应笔记本页面 然后复制过去就可以恢复了

【C#公共帮助类】10年代码,最全的系统帮助类
这个帮助类主要包含:对象转换处理 、分割字符串、截取字符串、删除最后结尾的一个逗号、 删除最后结尾的指定字符后的字符、 生成指定长度的字符串、 生成日期随机码、 生成随机字母或数、字 截取字符长度、 对象<-->JSON 4.0使用、 对象<-->JSON 2.0使…

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

python小工具封装_python接口自动化(二)——封装需要用到的工具类
封装需要用的工具类:1、封装读取Excel的工具类,这里选用的是pandas:importpandas as pdpath ‘test.xlsx‘sheet_name ‘test_data‘classwith_excel:#构造函数,调用类时就运行def __init__(self, pathNone, sheet_nameNone):if p…

三十之惑–面霸的八月(第二部分)
书接上回,今天叙述小米的面试经历。 这里可能有一些技术理解和技术方案,欢迎讨论。另昨天共计收入7笔共95元,够我喝几杯咖啡了,谢谢所有捐钱的朋友。 如果你心疼我码字辛苦,有钱朋友钱场,没钱的请拉朋友来捧…

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

程序可以在硬件之间发送吗_你知道硬件、软件工程师之间,还有一个固件工程师吗?...
软件跟硬件之间的界限已经越来越模糊了,那么处于这个灰色地带的,就是固件了。这就分成三类工作者。1、软件工程师一般指做图形界面的程序员,工作内容就是写C、JAVA、Web等。2、硬件工程师当然是指玩电路板的,工作内容就是画原理图…

悲催的跨平台文献管理能力
1.古老的TCP交互 邮箱、FTP、硬盘 2.用现成软件Zotero 免费、跨平台、导入后在Win福昕注释可实时同步mac看看 人生苦短,我用Zotero。。

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

仿qq左滑删除listview_Java基于Swing和Netty仿QQ界面聊天小项目
点击上方 好好学java ,选择 星标 公众号重磅资讯、干货,第一时间送达今日推荐:硬刚一周,3W字总结,一年的经验告诉你如何准备校招!个人原创100W访问量博客:点击前往,查看更多来源&…

[BZOJ1602] [Usaco2008 Oct] 牧场行走 (LCA)
Description N头牛(2<n<1000)别人被标记为1到n,在同样被标记1到n的n块土地上吃草,第i头牛在第i块牧场吃草。 这n块土地被n-1条边连接。 奶牛可以在边上行走,第i条边连接第Ai,Bi块牧场,第i…

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

[综合面试] 计算机面试书籍与求职网站推荐
一、推荐书籍 计算机的好书挺多的,我买了也有四五十本,也花了不少钱,但是这些投资都是值的,好好看一下这些书,让自己找工作时的薪水涨个几千是没问题的。当然,也有些书是电子版的。我是c方向的,…

python在工厂中的运用_Python常见工厂函数用法示例
工厂函数:能够产生类实例的内建函数。工厂函数是指这些内建函数都是类对象, 当调用它们时,实际上是创建了一个类实例。Python中的工厂函数举例如下:1. int(),long(),float(),complex(),bool()>>> aint(9.9)>>> …

Java Random()函数生成指定范围的随机数
java中随机生成数字(指定范围) //随机获得0到(i-1)的一个数 int i ThreadLocalRandom.current().nextInt(i);

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

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

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

利用dom4j将实体类转换为对应的xml报文
利用dom4j生成xml报文 目标格式: <?xml version"1.0" encoding"GBK"?><Packet type"REQUEST" version"1.0"><Head><RequestType>C03</RequestType><UserCode>BOCIJS</UserCode…

JSP--JavaBean
JSP 最强有力的一个方面就是能够使用 JavaBean 组件。 按照 Sun 公司的定义, JavaBean是一个可重复使用的软件组件。实际上 JavaBean 是一种 Java 类,通过封装属性和方法成为具有某种功能或者处理某些业务的对象,简称 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时,利用ajax达到不刷新页面就可以获取、操作数据。 首先上代码 (htmljs) 在此处需要引入jquery插件 <!-- 这是页面部分 html--> <body><div style"width:100%;height:30px; float:left"><in…

C/C++面试题分享
1、指针和引用的区别? 答:引用是在C中引入的。它们之间的区别有: (1) 非空区别:指针可以为空,而引用不能为空 (2) 可修改区别:如果指针不是常指针…

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

附加的操作系统服务
select :等待I/O实现threading:高层次的线程接口thread:多线程调度dummy_threading:提供threading模块的副本接口dummy——thread:提供thread模块的副本接口mutiprocessing:在全局调度锁下使用子进程mmap:内…

使用myeclipse的第一步
使用myeclipse的第一步 将以下代码copy放在一个包中运行,然后在控制台输入任意字符,回车,然后控制台打印一串密匙,这里你输入的就是账号,控制台返回的就是注册码,点击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网络编程--进程间通信(一)
进程间通信简介(摘自《Linux网络编程》p85) AT&T 在 UNIX System V 中引入了几种新的进程通讯方式,即消息队列( MessageQueues),信号量( semaphores)和共享内存( sha…

mysql 行号_PQ获取TABLE的单一值作为条件查询MySQL返回数据
下午,我正爽歪歪地喝着咖啡,看着Power BI每秒钟刷新一次,静静等待某个分公司完成本月绩效任务,自动调用Python在钉钉群中发送喜报:紧接着再次调用Python将Power BI云端报告中的各分公司最新完成率数据和柱状图截图发在…

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