python核心编程笔记——Chapter5
好吧,开始第五章习题:
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的更多相关文章
- python核心编程--笔记
python核心编程--笔记 的解释器options: 1.1 –d 提供调试输出 1.2 –O 生成优化的字节码(生成.pyo文件) 1.3 –S 不导入site模块以在启动时查找pyt ...
- python核心编程--笔记(不定时跟新)(转)
的解释器options: 1.1 –d 提供调试输出 1.2 –O 生成优化的字节码(生成.pyo文件) 1.3 –S 不导入site模块以在启动时查找python路径 1.4 –v ...
- python核心编程笔记(转)
解释器options: 1.1 –d 提供调试输出 1.2 –O 生成优化的字节码(生成.pyo文件) 1.3 –S 不导入site模块以在启动时查找python路径 1.4 –v 冗 ...
- Python核心编程笔记(类)
Python并不强求你以面向对象的方式编程(与Java不同) # coding=utf8 class FooClass(object): version = 0.1 def __init__(self ...
- Python核心编程笔记--动态属性
一.动态语言与静态语言 1.1 静态语言特点: a. 在定义变量时需要指定变量的类型,根据指定的类型来确定变量所占的内存空间 b. 需要经过编译才能运行 c. 在代码编译后,运行过程不能对代码进行操作 ...
- Python核心编程笔记 第三章
3.1 语句和语法 3.1.1 注释( # ) 3.1.2 继续( \ ) 一般使用换行分隔,也就是说一行一个语句.一行过长的语句可以使用反斜杠( \ ) 分 ...
- Python核心编程笔记 第二章
2.1 程序输出:print语句 可以使用print语句显示变量的字符串表示,或者仅用变量名查看该变量的原始值. 2.2 程序输出和raw_input()内建函数 ...
- python核心编程笔记——Chapter7
Chapter7.映像和集合类型 最近临到期末,真的被各种复习,各种大作业缠住,想想已经荒废了python的学习1个月了.现在失去了昔日对python的触觉和要写简洁优雅代码的感觉,所以临到期末毅然继 ...
- python核心编程笔记
1.python的对象是通过引用传递的. 2.多元赋值: x, y = y, x
随机推荐
- ASP.NET MVC 4.0 参考源码索引
http://www.projky.com/asp.netmvc/4.0/Microsoft/AspNet/Mvc/Facebook/FacebookAppSettingKeys.cs.htmlhtt ...
- HDU 2107 Founding of HDU
http://acm.hdu.edu.cn/showproblem.php?pid=2107 Problem Description 经过慎重的考虑,XHD,8600, LL,Linle以及RPG等A ...
- php框架的制作原理
php框架的制作原理 (2012-08-16 14:25:55) 转载▼ 标签: php框架制作 杂谈 分类: php index.php 主入口文件 <?php define('ISEXIS ...
- EasyUseCase 一款脑图转化 Excel 测试用例工具 (1.2 版本升级)
EasyUseCase 本工具由本人自主开发.经过内部实践有效提升测试用例编写效率200% 覆盖率可度量.利用读取xmind软件图表转换符合国人基本需求的测试用例,让手动写Excel用例的日子过去,发 ...
- Python基础:Python函数、文件操作、递归
函数参数 函数参数包括位置参数,关键字参数,动态参数(*args, **args)三种. 传参的过程是形式参数的赋值. *args传入的参数是元组形式,**args传入的参数是字典形式. 示例代码如下 ...
- win7 32位 import cv2 失败 ImportError:DLL load fail:找不到指定模块
引起问题的可能性太多,这里记录比较一下比较少见的错误原因 缺少dll文件 https://www.dll-files.com/api-ms-win-downlevel-shlwapi-l1-1-0.d ...
- UVAlive5135_Mining Your Own Business
好题.给一个无向图,求最少染黑多少个点后,使得任意删除一个点,每一个点都有与至少一个黑点联通. 一开始的确不知道做.看白书,对于一个联通分量,如果它有两个或以上的割点,那么这个分量中间的任何一个点都是 ...
- java 实用类
java 实用类 1.File类为管理文件和目录提供了方法,其对象表示一个文件或者目录.它提供了若干方法对文件 ...
- 牛客OI赛制测试赛3 解题报告
前话: 话说考试描述:普及难度. 于是想在这场比赛上涨点信心. 考出来的结果:Point:480 Rank:40 然而同机房的最好成绩是 510. 没考好啊!有点炸心态,D题一些细节没有注意, ...
- UIScrollView浏览一组图片,且图片与图片之间有间隔
---恢复内容开始--- UIScrollView是可以浏览一组view的,只要将其属性 pagingEnabled设置为true就可以了.具体过程是这样的, 1:将一组图片按照从左到右的顺序添加到U ...