Python程序语言设计基础(第二版)思考与练习

欢迎来到我的友链小屋

 

# Python程序语言设计基础(第二版)思考与练习 --- --- ## 3.5 思考各操作符的优先级,计算下列表达式 一、30-3\*\*2+8//3\*\*2*10 答:
>>> 30-3**2+8//3**2*10 21 # 幂运算第一,然后算地板除和乘法,最后加减 --- 二、3*4**2/8%5
>>> 3*4**2/8%5 1.0 # 先算幂,然后*,/,%依次运算 --- 三、3\*\*2\*\*3
>>> 3**2**3 6561 # 嵌套幂运算,优先算高级幂 --- 四、(2.5+1.25j)*4j/2
>>> (2.5+1.25j)*4j/2 (-2.5+5j) ''' 先看下面运算拆分 4j/2 = 2j 2.5*2j = 5j 1.25j*2j = -2.5+0j 所以 (2.5+1.25j)*4j/2 =2.5*2j + 1.25j*2j =5j + (-2.5+0j) =5j - 2.5 即: -2.5+5j ''' --- --- ## 3.6 请将下列数学表达式用python程序写出来,并运算结果 一、 ![avatar][s1]
>>> x = (2**4+7-3*4)/7 --- 二、![avatar][s2]
>>> x = (1+3**2)*(16%7)/7 --- --- ## 3.7 假设x=1,x*=3+5**2的运算结果是什么?
>>> x = 1 >>> x*=3+5**2 即 >>> x=(3+5**2)*x 28 --- --- ## 3.12 一年有365天,初始水平值为1.0,每工作一天水平增加N,不工作时水平不下降,一周连续工作4天,请编写程序运算结果并填写下表
def runx(): day1=int(input('请输入天数:')) initial = 1.0 initial1 = 1.0 ica = float(input("请输入每天增加量:")) for i in range(day1): if i%7 in [1,2,3,4]: initial = initial*(initial1 + ica) print('{:.2f}'.format(initial)) runx() |增加值|0.001|0.002|0.003|0.004|0.005|0.006|0.007| |----|----|----|----|----|----|----|----|----|----|----| |结果|1.23|1.52|1.86|2.29|2.82|3.47|4.27| |增加值|0.008|0.009|0.010| |----|----|----|----|----|----|----|----|----|----|----| |结果|5.25|6.45|7.92| --- --- ## 3.13 一年有365天,初始水平值为1.0,每工作一天水平增加N,不工作时水平不下降,一周连续工作5天,请编写程序运算结果并填写下表
def runx(): day1=int(input('请输入天数:')) initial = 1.0 initial1 = 1.0 ica = float(input("请输入每天增加量:")) for i in range(day1): if i%7 in [1,2,3,4,5]: initial = initial*(initial1 + ica) print('{:.2f}'.format(initial)) runx() |增加值|0.001|0.002|0.003|0.004|0.005|0.006|0.007| |----|----|----|----|----|----|----|----|----|----|----| |结果|1.30|1.68|2.18|2.82|3.66|4.74|6.13| |增加值|0.008|0.009|0.010| |----|----|----|----|----|----|----|----|----|----|----| |结果|7.94|10.27|13.29| --- --- ## 3.14 一年有365天,初始水平值为1.0,每工作一天水平增加N,不工作时水平不下降,一周连续工作6天,请编写程序运算结果并填写下表
def runx(): day1=int(input('请输入天数:')) initial = 1.0 initial1 = 1.0 ica = float(input("请输入每天增加量:")) for i in range(day1): if i%7 in [1,2,3,4,5,6]: initial = initial*(initial1 + ica) print('{:.2f}'.format(initial)) runx() |增加值|0.001|0.002|0.003|0.004|0.005|0.006|0.007| |----|----|----|----|----|----|----|----|----|----|----| |结果|1.37|1.87|2.55|3.47|4.74|6.47|8.81| |增加值|0.008|0.009|0.010| |----|----|----|----|----|----|----|----|----|----|----| |结果|12.01|16.37|22.30| --- ## 3.15 一年有365天,初始水平值为1.0,以每个月30天计算,在每个月月初连续10天里,每工作一天水平增加N,该月其他时间工作与否都不增加水平值。请运算结果并填写下表。
while 1==1: basics = 1.0 days = 360 increase = float(input("请输入每天的增加值:")) for i in range(days): if i%30 in [1,2,3,4,5,6,7,8,9,10]: basics *= 1 + increase print("{:.2f}".format(basics)) |增加值|0.001|0.002|0.003|0.004|0.005|0.006|0.007| |---|---|---|---|---|---|---|---| |结果|1.13|1.27|1.43|1.61|1.82|2.05|2.31| |增加值|0.001|0.002|0.003| |-|-|-|-| |结果|2.60|2.93|3.30| --- ## 3.16 s="hello", t="world", s+=t, 则 s、s[-1]、s[2:8]、s[::3]、s[-2::-1]分别是多少? |问|s|s[-1]|s[2:8]|s[::3]|s[-2::-1]| |---|---|---|---|---|---| |答|"helloworld"|"d"|"lowor"|"hlod"|"lrowolleh"| > 解释:
>   s[::3]:表示从第一个字母开始,查找间隔第三个的字母
>   s[-2::-1]:反向查找,表示从倒数第二个字母开始查找到顺数第一个字母,并且反向输出 --- ## 3.17 判断题:Python中"4"+"5"的结果为"9": > 错,这是字符串拼接,不是数字计算 --- ## 3.18 采用微实例 3.1 的设计思路还能完成哪些常用计算需求? > 答: --- ## 3.19 s="Python String",写出下列操作的输出结果: > s.upper()、s.lower()、s.find('i')
> s.replace('ing','qni')、s.split(' ') 解: |s.upper()|s.lower()|s.find('i')| |---|---|---| |'PYTHON STRING'|'python string'|10| |s.replace('ing','gni')|s.split(' ')| |---|---| |'Python Strgni'|['Python','String']| 解释: > s.upper() 返回字符串str的副本,全部字符大写 > s.lower() 返回字符串str的副本,全部字符小写 > s.find('i') 查找字符串str中元素'i'的位置 > s.replace('ing','gni') 将字符串str中的元素'ing'替换为'gni' > s.split(' ') 以空格为分隔符,返回分割后的字符串列表 --- ## 3.20 下列表达式错误的是(): |A|'abcd'<'ad'| |B|'abc'<'abcd'>| |-|-|-|-|-| |C|''<'a'||D|'Helo'>'helo'| |-|-|-|-|-| 答: > A选项: 先比第0个元素,a和a比一样大;再比第一个元素,b比d小.那么'abcd'比'ad'小.结果是TRUE. > B选项:前三个元素都相等,但'abcd'有第三个元素,而'abc'没有.所以'abc'<'abcd'. > C选项:这个错了,既不是对,又不是错. > D选项:先比第0个元素,'A'要比'a'小.所以'ABCD'应该小于'abcd'. 结果为False. ------ ## 3.21 请思考并描述下面Python语句的输出结果 > print('{:>15s}:{:<8.2f}'.format('Length',23.87501)) >>> print('{:>15s}:{:<8.2f}'.format('Length',23.87501)) ' Length:23.88 ' --- ## 3.22 格式化输出 389 的二进制、八进制、十进制、十六进制的表达形式,以及对应的Unicode字符。 >>> '{:*^20b}'.format(389) #输出二进制 '*****110000101*****' >>> '{:*<20o}'.format(389) #输出八进制 '605*****************' >>> '{:*>20d}'.format(389) #输出十进制 '*****************389' >>> '{:*^20X}'.format(389) #输出大写十六进制 '********185*********' >>> '{:*^20c}'.format(389) #输出Unicode字符 ‘*********b**********’ --- ## 3.23 格式化输出 0.002178 对应的科学表示法形式,保留4位有效位的标准浮点形式及百分比形式
>>> '{:E}'.format(0.002178) '2.178000E-03' >>> '{:.4f}'.format(0.002178) '0.0022' >>> '{:.2%}'.format(0.002178) #返回百分比形式,并保留小数点后两位 '0.22%' --- ## 3.24 进度条反映了软件的执行速度,请思考并给出至少3种提高软件执行速度的方法。 > 硬件:使用性能更强的处理器;或使用固态硬盘等设备提高计算机整体速度。 > > 软件自身:在编写时进行代码优化。编译时采用静态编译(Python 不存在编译的问题)。 > > 运行平台:类似Linux环境下执行,把硬件的算力提升到更大 --- ## 3.25 str.center()方法的功能是什么? > 将字符串居中 --- ## 3.26 如果将\r 放在print()中字符串的其他部分,会产生什么效果? print('\r你好Python') print('\r你好世界') >>>>>>>>>>>>>>> '你好Python' '你好世界' print('你好啊\rPython') print('你好啊\r世界') >>>>>>>>>>>>>>> 'Python' '世界啊' > 将转义符\r 放到字符串尾部是对程序没有影响; > > 然而如果放到其他地方,会导致\r 前面的所有字符不显示,因为每次输出到\r,指针又退回了行首,如果后面的内容足够长,后面的内容会将其覆盖。 --- [s2]:data:image/png;base64,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 [s1]:data:image/png;base64,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

posted @ 2020-11-22 12:44  田二爷  阅读(10966)  评论(2编辑  收藏  举报