python一年365天、初始水平值_2020年11月7日,20201107

Python语言程序设计基础(第2版)崇天 著 思考题

第3章 基本数据类型*(仅供参考)*

3.1

既然浮点数可以表示所有整数数值,Python语言为何要同时提供整数和浮点数两种类型?

因为浮点数类型的最长运算结果可输出17位数字,其运算精度为2.220e-16,运算误差仅为0.000 000 000 000 000 2,在对数据进行高精度科学计算是浮点数类型不能准确的计算出来。而整数类型进行运算能够输出完全准确的结果。

3.2

Python语言中整数1010的二进制、八进制和十六进制表示分别是什么?

二进制:0b1111110010

八进制:0o1762

十六进制:0x3f2

a = bin(1010) # 二进制

b = oct(1010) # 八进制

c = hex(1010) # 十六进制

print(a, b, c)

3.3

Python语言中-77.的科学计数法表示是什么?4.3e-3的十进制表示什么?

-77.的科学计数法表示:-7.7e1 或 -7.7e+1

4.3e-3的十进制表示:0.0043

3.4

复数2.3e+3-1.34e-3j的实部和虚部分别是什么?采用什么方法提取一个复数的实部和虚部?

实部:2.3e+3

虚部:-1.34e-3

z = 2.3e+3-1.34e-3j

print(z.real) # 提取实部

print(z.imag) # 提取虚部

2300.0

-0.00134

3.5

思考各操作符的优先级,计算下列表达式。

解:

3.6

请将下列数学表达式用Python程序写出来,并运算结果。

mod 表示取余

x1 = (pow(2, 4)+7-3*4)/5

x2 = (1+pow(3, 2))*(16 % 7)/7

print("x1={}\nx2={}".format(x1, x2))

x1=2.2

x2=2.857142857142857

3.7

假设x=1,x*=3+5**2的运算结果是什么?

x = x*(3+5**2)=1*(3+25)=28

3.8

请利用math库运行下面语句,获得计算结果。

import math

s = list()

s.append(math.sin(2*math.pi)) # (1)

s.append(math.fabs(-2.5)) # (2)

s.append(math.ceil(3.5+math.floor(-2.5))) # (3)

s.append(round(math.fabs(-2.5))) # (4)

s.append(math.sqrt(math.pow(2, 4))) # (5)

s.append(math.log(math.e)) # (6)

s.append(math.gcd(12, 9)) # (7)

s.append(math.fmod(36, 5)) # (8)

for i in range(8):

print("s{}={}".format(i+1, s[i]))

结果

s1=-2.4492935982947064e-16

s2=2.5

s3=1

s4=2

s5=4.0

s6=1.0

s7=3

s8=1.0

3.9

请利用math库将47°的角转换为弧度值,并将结果赋予给一个变量。

3.10

请利用math库将π/7的弧度值转换为角度值,并将结果赋予给一个变量。

import math

x = math.radians(47)

y = math.degrees(math.pi/7)

print("47°的角转换为弧度值为:{}\n"

"π/7的弧度值转换为角度值为:{}".format(x, y))

47°的角转换为弧度值为:0.8203047484373349

π/7的弧度值转换为角度值为:25.714285714285715

3.11

math库有44个函数,Python计算生态有超过10万个各类函数库,思考一下,该怎么学习这些函数库呢?

略。。。

3.12

一年365天,初始水平值为1.0,每工作一天水平增加N,不工作时水平不下降,一周连续工作4天,请编写程序运算结果并填写下表:

def day(n):

level = 1.0

for week in range(365):

if week % 7 in [1, 2, 3, 4]:

level *= (1 + n)

return level

for i in range(1, 11):

N = i / 1000

print("N={:.3f}的年终值为{:.3f}".format(N, day(N)))

N=0.001的年终值为1.231

N=0.002的年终值为1.515

N=0.003的年终值为1.865

N=0.004的年终值为2.294

N=0.005的年终值为2.822

N=0.006的年终值为3.470

N=0.007的年终值为4.267

N=0.008的年终值为5.246

N=0.009的年终值为6.447

N=0.010的年终值为7.922

3.13

3.14

3.15

一年365天,初始水平值为1.0,以每个月30天计算,在每个月月初连续10天里,每工作一天水平增加N,该月其他时间工作与否都不增加水平值。请编写程序运算结果并填写下表:

def year(n):

level = 1.0

for month in range(12):

for day in range(1, 31):

if day / 10 <= 1.0:

level *= (1 + n)

return level

for i in range(1, 11):

N = i / 1000

print("N={:.3f}的年终值为{:.3f}".format(N, year(N)))

N=0.001的年终值为1.127

N=0.002的年终值为1.271

N=0.003的年终值为1.433

N=0.004的年终值为1.615

N=0.005的年终值为1.819

N=0.006的年终值为2.050

N=0.007的年终值为2.310

N=0.008的年终值为2.602

N=0.009的年终值为2.930

N=0.010的年终值为3.300

3.16

s=“hello”, t=“world”, s+=t, 则s、s[-1]、s[2:8]、s[-2::-1]分别是多少?

s = s + t

s = “helloworld”

s[-1] = “d”

s[2:8] = “llowor”

s[-2::-1] = “lrowolleh”

3.17

判断题:Python中"4"+“5"结果为"9”

错,字符"4"和"5"的拼接,应是"45"

3.18

采用微实例3.1的设计思路还能完成哪些常用计算需要?

实例3.1 是获取星期字符串

日期、金额、各种商品的型号等等

3.19

s=“Python String”,写出下列操作的输出结果:

s = "Python String"

print(s.upper())

print(s.lower())

print(s.find('i'))

print(s.replace('ing', 'gni'))

print(s.split())

PYTHON STRING

python string

10

Python Strgni

['Python', 'String']

3.20

下列表达式错误的是()。

A.‘abcd’

B.‘abc’

C."

D.‘Hello’>‘hello’

C

3.21

请思考并描述下面Python语句的输出结果:

print("{:>15s}:{:<8.2f}".format(“Length”, 23.87501))

在15个字符长度里,由右对齐输出Length,其余用空格填充;再接着输出冒号(:),后面是在8个字符长度里,由左对齐输出23.87501保留2位小数长度的数23.88

*********Length:23.87***

# 这里将空格换成*

3.22

格式化输出389的二进制、八进制、十进制、和十六进制的表达式。以及对应的Unicode字符。

print("{0}的二进制是{0:b}\n"

"{0}的八进制是{0:o}\n"

"{0}的十进制是{0:d}\n"

"{0}的十六进制是{0:x}\n"

"{0}的Unicode字符是{0:c}\n".format(389))

389的二进制是110000101

389的八进制是605

389的十进制是389

389的十六进制是185

389的Unicode字符是ƅ

3.23

格式化输出0.002 178 对应的科学表示法形式,保留4位有效位的标准浮点数形式以及百分形式。

print("科学表示法:{0:e}\n"

"标准浮点形式:{0:.4f}\n"

"百分形式:{0:.4%}".format(0.002178))

科学表示法:2.178000e-03

标准浮点形式:0.0022

百分形式:0.2178%

3.24

进度条反映了软件的执行速度,请思考并给出至少3种提高软件执行速度的方法。

1.减少程序代码,尽量使用函数,局部变量

2.使用内建的字符串,元组,列表,集合,字典等容器。

3.有选择性的消除属性访问。如多用 from math import sqrt 而不要直接再程序中多次调用 math.sqrt(),或直接声明局部变量。

3.25

str.center()方法的功能是什么?

str.center()方法会对原字符串进行排版,通过指定一个长度值,将原字符串在该长度内居中。可选的填充字符参数可以指定填充字符,默认情况下以空格为填充字符。如果width大于字符串长度,则返回一个新字符串,否则返回原字符串。

str.center(width, fillchar)

# width字符串排版总宽度,整型参数,不可省略的参数

# fillchar填充字符,字符串参数,可省略的参数,省略时填充字符为空格符

3.26

如果将\r放在print()中字符串的其他部分,会产生什么效果?

产生的效果是,只会运行显示print()字符串中\r后面的字符串

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值