好吧,开始第五章习题:

5-2.又是老调重谈,raw_input这个函数真是非常麻烦,返回是str类型,没办法,只能在函数里面使用int内建。(就只是一道简单的两数相乘,哭了)

 #!/usr/bin/env python
#-*-coding=utf-8-*- def mul(a,b):
return int(a)*int(b) if __name__ == '__main__':
a = raw_input("输入a:")
b = raw_input("输入b:")
print mul(a,b)

5-3.谭浩强的书见过无数遍的题目,输入分数看A-F,没什么好说的,但是想练一下用字典这个数据结构,写来看看

 #!/usr/bin/env python
#-*-coding=utf-8-*- def grade(a):
aDist = {0:'F',1:'F',2:'F',3:'F',4:'F',5:'F',\
6:'D',7:'C',8:'B',9:'A',10:'A'}
return aDist[int(a) / 10] if __name__ == '__main__':
g = raw_input("请输入测验成绩:")
print grade(g)

5-4 判断是否闰年,无难度

 #!/usr/bin/env python
#-*-coding=utf-8-*- def Leapyear(a):
year = int(a)
if (year % 4 == 0 and year % 100 != 0) or (year % 400 == 0):
return True
else:
return False if __name__ == '__main__':
yy = raw_input("请输入年份:")
if Leapyear(yy) == True:
print '闰年'
else:
print '平年'

5-5.硬币找零,初期的贪心算法(继续用字典)

 #!/usr/bin/env python
#-*-coding=utf-8-*- def change(a):
aDist = {25:0,10:0,5:0,1:0}
b = int(float(a) * 100)
for key in aDist:
aDist[key] = b / key
b %= key
sum = 0
for key in aDist:
sum += aDist[key]
return sum if __name__ == '__main__':
f = raw_input("请输入金额:")
print change(f)

5-6.算术问题:主要麻烦在字符串的处理上面,我初次尝试一下使用正则来解决,但是过程颇恶心。

 #!/usr/bin/env python
#-*-coding=utf-8-*- import re def calculator(Str):
pat1 = r'[0-9.]+' #匹配数字
pat2 = r'[\+\-\*/%]+' #匹配算术符号
aList1 = re.findall(pat1,Str)
aList2 = re.findall(pat2,Str)
if aList2[0] == '+':
return float(aList1[0]) + float(aList1[1])
if aList2[0] == '-':
return float(aList1[0]) - float(aList1[1])
if aList2[0] == '*':
return float(aList1[0]) * float(aList1[1])
if aList2[0] == '/':
return float(aList1[0]) / float(aList1[1])
if aList2[0] == '%':
return float(aList1[0]) % float(aList1[1])
if aList2[0] == '**':
return float(aList1[0]) ** float(aList1[1]) if __name__ == '__main__':
ss = raw_input("请输入算式:")
print calculator(ss)

5-8.几何问题,本来不想做的,试一下用常量Pi

 #!/usr/bin/env python
#-*-coding=utf-8-*- from math import pi def square(a):
return float(a) ** 2 def cube(a):
return float(a) ** 3 def circle(r):
return pi * float(r) ** 2 def spherome(r):
return 4.0 / 3 * pi * float(r) ** 3 if __name__ == '__main__':
a1 = raw_input("请输入正方形的边长:")
print '正方形面积为:',square(a1)
a2 = raw_input("请输入立方体的边长:")
print '立方体的体积为:',cube(a2)
r1 = raw_input("请输入圆的半径:")
print '圆的面积为:',circle(r1)
r2 = raw_input("请输入球体的半径:")
print '球体的体积为:',spherome(r2)

5-10.转换。老题目,摄氏温度转化为华氏温度,题目说什么要用到现实生活的除法(其实python2.2之后的版本'/'已经是真正的除法了),只好做一下呗

 #!/usr/bin/env python
#-*-coding=utf-8-*- from __future__ import division def change(F):
C = (float(F) -32) * 5.0 / 9
return C if __name__ == '__main__':
f = raw_input("摄氏温度为:")
print '华氏温度为:%.2f' % change(f)

5-12.系统限制。写一段脚本确认一下你的Python所能处理的整型,长整型,浮点型和复数的范围。这道题真的没思路。后来百度看用到sys模块

 >>>import sys; #加载sys模块

 >>>print (sys.maxint);
>>>print(-sys.maxint-1); >>>print(sys.float_info);
>>>print(sys.long_info);
#最后我这个运行起来有问题不知道为什么,有人说是版本问题

5-16.繁琐的题目,这是我写的。

 #!/usr/bin/env python
#-*-coding=utf-*- def Payment(balance,monthly):
count = 1
print ' Amount Remaining'
print 'Pymt# Paid Balance'
print '----- ------ -----------'
b = float(balance)
m = float(monthly)
print ' 0 $ 0.00 $%.2f' % b
while b >= 0:
if b < m:
print '%2d $%4.2f $0.00' % (count,b)
break
else:
b -= m
print '%2d $%4.2f $%4.2f' % (count,m,b)
count += 1 if __name__ == '__main__':
ob = raw_input('Enter opening balance:')
mp = raw_input('Enter monthly payment:')
Payment(ob,mp)

后来我在网上看到了一种代码行数更简单的方法,跪了。

 #!/usr/bin/env python
#-*-coding=utf-*- def Payment(balance,monthly):
count = 1
print ' Amount Remaining'
print 'Pymt# Paid Balance'
print '----- ------ -----------'
b = float(balance)
m = float(monthly)
print '%4d%15.2f%15.2f' % (0, 0.00, 100)
while (b - count * m ) >= 0:
count = count + 1
print '%4d%15.2f%15.2f' % (count - 1, m, (b - m*(count - 1)))
print '%4d%15.2f%15.2f' % (count, (b - m*(count - 1)), 0) if __name__ == '__main__':
ob = raw_input('Enter opening balance:')
mp = raw_input('Enter monthly payment:')
Payment(ob,mp)

5-17.随机数。懂得用ramdom模块以及randint函数

 #!/usr/bin/env python
#-*-coding=utf-8-*- import random N = random.randint(1, 101) list = range(N) #注意这种新建列表的方式 for i in range(N):
list[i] = random.randint(-1, 2**31) print 'N =',N
print '生成的列表:',list
list.sort()
print '排序过后:',list

多谢!

python核心编程笔记——Chapter5的更多相关文章

  1. python核心编程--笔记

    python核心编程--笔记 的解释器options: 1.1 –d   提供调试输出 1.2 –O   生成优化的字节码(生成.pyo文件) 1.3 –S   不导入site模块以在启动时查找pyt ...

  2. python核心编程--笔记(不定时跟新)(转)

    的解释器options: 1.1 –d   提供调试输出 1.2 –O   生成优化的字节码(生成.pyo文件) 1.3 –S   不导入site模块以在启动时查找python路径 1.4 –v   ...

  3. python核心编程笔记(转)

    解释器options: 1.1 –d   提供调试输出 1.2 –O   生成优化的字节码(生成.pyo文件) 1.3 –S   不导入site模块以在启动时查找python路径 1.4 –v   冗 ...

  4. Python核心编程笔记(类)

    Python并不强求你以面向对象的方式编程(与Java不同) # coding=utf8 class FooClass(object): version = 0.1 def __init__(self ...

  5. Python核心编程笔记--动态属性

    一.动态语言与静态语言 1.1 静态语言特点: a. 在定义变量时需要指定变量的类型,根据指定的类型来确定变量所占的内存空间 b. 需要经过编译才能运行 c. 在代码编译后,运行过程不能对代码进行操作 ...

  6. Python核心编程笔记 第三章

    3.1     语句和语法    3.1.1   注释( # )   3.1.2   继续( \ )         一般使用换行分隔,也就是说一行一个语句.一行过长的语句可以使用反斜杠( \ ) 分 ...

  7. Python核心编程笔记 第二章

    2.1   程序输出:print语句         可以使用print语句显示变量的字符串表示,或者仅用变量名查看该变量的原始值. 2.2   程序输出和raw_input()内建函数       ...

  8. python核心编程笔记——Chapter7

    Chapter7.映像和集合类型 最近临到期末,真的被各种复习,各种大作业缠住,想想已经荒废了python的学习1个月了.现在失去了昔日对python的触觉和要写简洁优雅代码的感觉,所以临到期末毅然继 ...

  9. python核心编程笔记

    1.python的对象是通过引用传递的. 2.多元赋值: x, y = y, x

随机推荐

  1. iOS-UICollectionViewLayout方法介绍

    注意:UICollectionView的自定义功能就是自己去实现UICollectionViewLayout的子类,然后重写相应的方法来实现Cell的布局 1.当布局首次被加载时会调用prepareL ...

  2. 【第二周】PSP

    日期 C类别 C内容 S开始时间 E结束时间 I间隔(单位:分钟) T净时间(单位:分钟) 9月8日 编程 结对编程 12:15 13:15 10 50    编程 结对编程  16:35 17:30 ...

  3. Linux限制cpu睿频&限制频率

    .关闭睿频 > /sys/devices/system/cpu/intel_pstate/no_turbo .限制CPU最大频率到50% " | sudo tee /sys/devic ...

  4. ERROR 1698 (28000): Access denied for user 'root'@'localhost' 解决方法

    之前MySQL服务端本机上使用密码登陆root账号是没有问题的,但是今天不知道是因为动了哪里,登陆失败并有这个错误代码: ~$ mysql -u root -p Enter password: ERR ...

  5. [微软官方]FSUTIL

    Applies To: Windows Server 2003, Windows Vista, Windows Server 2008, Windows 7, Windows Server 2003 ...

  6. vue使用axios发送数据请求

    本文章是基于vue-cli脚手架下开发 1.安装 npm install axios --s npm install vue-axios --s 2.使用.在index.js中(渲染App组件的那个j ...

  7. rpc 协议规范 之 rmi http webservice 和 一些框架

    RPC(Remote Procedure Call)是远程调用,是一种思想,也是一种协议规范.简单地说就是能使应用像调用本地方法一样的调用远程的过程或服务,可以应用在分布式服务.分布式计算.远程服务调 ...

  8. BZOJ2958 序列染色(动态规划)

    令f[i][0/1/2][0/1]表示前i位,不存在满足要求的B串和W串/存在满足要求的B串不存在W串/存在满足要求的B串和W串,第i位填的是B/W的方案数.转移时考虑连续的一段填什么.大讨论一波后瞎 ...

  9. vue项目使用eslint

    转载自 https://www.cnblogs.com/hahazexia/p/6393212.html eslint配置方式有两种: 注释配置:使用js注释来直接嵌入ESLint配置信息到一个文件里 ...

  10. Udp广播的发送与接收(C#+UdpClient) 上篇

    简介: Udp广播消息用在局域网的消息传递很方便.本文使用UdpClient类在WPF下实现Udp广播收发 发送: void MainWindow_Loaded(object sender, Rout ...