Python核心编程第二版附录A
Python核心编程第二版(中文).pdf目录整理
Python核⼼编程第⼆版(中⽂).pdf⽬录整理python核⼼编程⽬录Chapter1:欢迎来到python世界!-页码:71.1什么是python1.2起源:罗萨姆1989底创建python1.3特点1.3.1⾼级1.3.2⾯向对象1.3.3可升级1.3.4可扩展1.3.5可移植性:python使⽤C写的。
1.3.6易学1.3.7易读1.3.8易维护1.3.9健壮性1.3.10⾼效的快速原型开发⼯具1.3.11内存管理器:内存管理由python解释器负责,开发仅仅致⼒于开发计划中的应⽤程序。
1.3.12解释性和(字节)编译性:⽆需编译,当执⾏py⽂件,会⽣成.pyc或.pyo⽂件1.4下载和安装python1.5运⾏python1.5.1命令⾏的交互式解释器1.5.2从命令⾏启动脚本1.5.3集成开发环境1.5.4其他的集成开发环境和执⾏环境1.6python⽂档1.7⽐较python(python与其他语⾔的⽐较)Chapter2:Python起步-页码:31注:语句和表达式的区别语句是使⽤关键词来组成命令,告诉解释器要做什么。
表达式没有关键词,可以使算术表达式,也可以是使⽤括号调⽤的函数。
2.1程序输出,print语句及“Hello World” :print是关键字Print ‘%s is number %d!’%(‘python’,1) #print与字符串格式运算符(%)结合使⽤。
2.2程序输⼊和raw_input()内建函数:raw_input()是内建函数2.3注释#2.4运算符 :算数运算符+ - * / // % ** ⽐较运算符,逻辑运算符2.5变量和赋值2.6数字:int,long,bool,float,complex(复数)2.7字符串2.8列表[]和元组()2.9字典{}2.10代码块及缩进对齐2.11 if语句2.12 while循环2.13 for循环和range()内建函数: enumerate()内建函数可循环索引和元素2.14列表解析:可使⽤for循环将所有值放在⼀个列表⾥。
python快速编程入门(第2版)课后答案
python快速编程⼊门(第2版)课后答案1. Python概述填空题1. 对象2. 可移植性3. Python4. import5. from…import *判断题1. √2. ×3. ×4. √5. √选择题1. C2. D3. C简答题1. Python主要的特点有代码简洁、语法优美、简单易学、开源、可移植、类库丰富、中⽂⽀持等。
2. Python中可以使⽤关键字import导⼊⼀个或多个模块,也可以使⽤from 模块名 import * 导⼊模块中的全部内容。
3. 模块是最基础的代码组织⽅式,每个包含有组织的代码⽚段的.py⽂件都是⼀个模块;包以类似⽬录的机构组织模块⽂件或⼦包;库是⼀个抽象的概念,它是指具有相关功能模块的集合。
编程题省略,代码详见教材。
1. Python基础填空题1. 42. True False3. type4. 浮点5. 1判断题1. ×2. ×选择题1. A2. A3. D4. B5. C简答题1. 根据数据存储形式的不同,Python使⽤不同的数据类型存储不同类型的数据。
数字类型提供了数值的存储,Python中的数字类型⼜包含整型、浮点型、复数类型和布尔类型。
2. 常量名使⽤⼤写的单个单词或由下画线连接的多个单词(如ORDER_LIST_LIMIT);模块名、函数名使⽤⼩写的单个单词或由下画线连接的多个单词(如low_with_under);类名使⽤⼤写字母开头的单个或多个单词(如Cat、CapWorld)。
3. Python运算符是⼀种特殊的符号,主要⽤于实现数值之间的运算。
根据操作数数量的不同,运算符可分为单⽬运算符、双⽬运算符;根据功能的不同,运算符可分为算术运算符、赋值运算符、⽐较运算符、逻辑运算符和成员运算符。
编程题答案:radius = float(input("请输⼊园的半径:"))# 直径diameter = 2 * radius# ⾯积area = 3.14 * radius * radiusprint('园的直径为:', diameter)print('园的⾯积为:', area)答案:frequency = (29.5 - 4 * 3) / 2.5print("还需运送的次数为:",frequency)1. 流程控制填空题1. if2. for ,while3. True4. for5. continue判断题4. ×5. ×选择题1. C2. C3. C4. C5. B简答题1. break语句⽤于结束整个循环;continue的作⽤是⽤来结束本次循环,紧接着执⾏下⼀次的循环。
python程序设计基础第二版董付国课件
06
常用库函数介绍与实践应用举例
数学计算相关库函数
math库
提供了一系列数学函数,如三角函数 、指数函数、对数函数等,用于进行 基本的数学计算。
scipy库
基于numpy库,提供了许多用于科学 和技术计算的函数和工具,如优化、 线性代数、积分、插值、特殊函数等 。
日期时间处理相关库函数
datetime库
用于将表达式的值赋给变量, 包括简单赋值、增量赋值等。
成员运算符
用于判断一个值是否属于某个 序列或集合,包括in和not in
两种。
身份运算符
用于比较两个对象的身份是否 相同,包括is和is not两种。
03
控制结构与函数设计
条件语句与分支结构
if语句
根据条件判断执行不同代码块, 可通过elif实现多分支结构。
卸载包
使用`pip uninstall package_name`命令卸载包。
pip概述
pip是Python的包管理工具,用 于安装、升级和卸载Python包。 它可以从Python Package Index (PyPI)下载并安装包。
查看已安装包
使用`pip list`命令查看已安装的 所有包及其版本信息。
提供了日期和时间处理的类,包括日期、时间、日期时间、时间差 等,支持日期和时间的算术运算和格式化输出。
time库
提供了时间相关的函数,如获取当前时间、格式化时间、睡眠等。
calendar库
提供了与日历相关的功能,如获取某年某月的日历、判断某年是否为 闰年等。
正则表达式库re模块使用
re库
Python标准库中的正则表达式库,提供了正则表达式的匹配、 搜索、替换等功能。
python核心编程第二版课后题答案第五章
def ji(x1, x2):'''5-2 返回两个数的乘积'''return x1*x2def grade(score):'''5-3 输入乘积0~100份之内,返回评分'''if 90<=score<=100:return 'A'elif 80<=score<=89:return 'B'elif 70<=score<=79:return 'C'elif 60<=score<=69:return 'D'elif 60>score:return 'F'def isleapyear(year):'''5-4 输入年份,判断是否是闰年,年份小于172800年有效''' if (year%4==0 and year%100 !=0) or year%400==0: return Truereturn Falsedef minmoney(money):'''5-5 将任意一个美元(小于1美元)分成硬币由1美分,5美分,10美分,25美分且硬币数量是最少的一种组合方式'''m1 = int(money*100)m25 = m1/25m1 -= m25*25m10 = m1/10m1 -= m10*10m5 = m1/5m1 -= m5*5# 1美分,5美分,10美分,25美分return [m1,m5,m10,m25]def computer(cmd):'''5-6 输入类似x * y 这样的式子,自动获得值'''ops = ['+','-','**','/','%','*']for op in ops:if op in cmd:cmds = cmd.split(op)cmds[0]=float(cmds[0])cmds[1]=float(cmds[1])if op == '+':return sum(cmds)if op == '-':return cmds[0]-cmds[1]if op == '**':return pow(cmds[0],cmds[1])if op == '/':return cmds[0]/cmds[1]if op == '%':return cmds[0]%cmds[1]if op == '*':return cmds[0]*cmds[1]def tax(value, tax=0.17):'''5-7 输入价格,获得营业税,这里假设税金是20%''' import decimalvalue = decimal.Decimal(str(value))tax = decimal.Decimal(str(tax))return value*taxdef square(x,y=None):'''5-8(a)-1 求正方形或者长方形面积'''if y == None:y = xreturn x*ydef cube(x,y=None,h=None):'''5-8(a)-2 求立方体的体积'''if y==None:y=xif h==None:h=xreturn x*y*hdef circle(r):'''5-8(b)-1 求圆的面积'''import mathreturn 2*math.pi*rdef sphere(r):'''5-8(b)-2 求球的体积'''import mathreturn 4./3*math.pi*r**3def f2c(f):'''5-10 华氏度转摄氏度FahrenheitDegree to CelsiusDegree''' return (f-32)*(5./9)def even(l):'''5-11(a) 求列表中数字的偶数'''rl = []for i in l:if i%2==0:if i in rl:continuerl.append(i)return sorted(rl)def odd(l):'''5-11(b) 求列表中数字的奇数'''rl = []for i in l:if i%2 != 0:if i in rl:continuerl.append(i)return sorted(rl)def individe(x,y):'''5-11(d) 是否能整除'''if x%y==0:return Truereturn Falsedef numinfo():'''5-12 输出当前系统关于数字的范围'''import sysl = {}maxint = sys.maxintminint = -maxintmaxlong = sys.maxsizeminlong = -maxlongmaxfloat = sys.float_info.maxminfloat = sys.float_info.minl['maxint'],l['minint'],l['maxlong'],l['minlong'],l['maxfloat'],l['minfloat'] = \ maxint,minint,maxlong,minlong,maxfloat,minfloatreturn ldef time2minute(time):'''5-13 将由小时和分钟表示的时间转换成只有分钟的时间'''times = time.split(':')return int(times[0])*60+int(times[1])def banktax(interest):'''5-14 返回年回报率'''import decimalreturn (decimal.Decimal(1)+decimal.Decimal(str(interest)))**365def gcd(num1,num2):'''5-15-1 最大公约数'''mins = num1cd = Noneif num2 < num1:num1,num2 = num2,num1cds = []for i in range(1, num1+1):if num1%i == 0:cds.append(i)cdslen = len(cds)for i in range(0,cdslen):if num2%cds[(cdslen-i-1)]==0:cd = cds[(cdslen-i-1)]breakreturn cddef lcm(num1,num2):'''5-15-2 最小公倍数'''# 需要gcd 函数cd = gcd(num1,num2)a = num1/cdb = num2/cdreturn cd*a*bdef payment(startmoney,monthout):'''5-16 给定初始金额和月开销数'''# 最大序号max = float(startmoney)/monthoutif not max.is_integer():max+=1max = int(max)# 格式化输出sapp = 3 - (len(str(startmoney)) - len(str(int(startmoney)))) # 3其实就是'.00' 的长度,sapp表示startmoney增加mapp = 3 - (len(str(monthout)) - len(str(int(monthout)))) # 后面其实是输入数据的数字长度减去他的整型部分slen = str(len(str(startmoney))+sapp) # startmoney 长度加上小数部分的补差长度mlen = str(len(str(monthout))+mapp) # monthout lengthstring = '%d\t$%'+mlen+'.2f\t$%'+slen+'.2f' # 输出格式L1, L2, L3 = len(str(max)), int(mlen)+1, int(slen)+1 # L1 L2 L3 第一第二第三栏宽度if L1 <5:L1 = 5print 'Amount Remaining'print 'Pymt#'.center(L1)+'\t'+'Paid'.center(L2)+'\t'+'Balance'.center(L3)print '-'*L1+'\t'+'-'*L2+'\t'+'-'*L3print string %(0,0,startmoney)for i in range(1,max+1):if startmoney>=monthout:startmoney-=monthoutelse:monthout = startmoneystartmoney = 0print string %(i,monthout,startmoney)def randomlist():'''5-17 生成N个元素由随机数n组成的列表其中1<N<=100 0<=n<=231 -1并排序'''import randomN = [i for i in xrange(2,101)]n = [i for i in xrange(-1,232)]Nn = random.choice(N)Return = []for i in xrange(0,Nn):num = random.choice(n)n.remove(num) # 从n 列表中删除已经选过的数字Return.append(num)return sorted(Return)。
《Python快速编程入门(第2版)》—教学大纲
《Python快速编程入门(第2版)》教学大纲课程编号:xxxxx学分:5学分学时:70学时(其中:讲课学时52 上机学时:18)先修课程:无后续课程:《解析Python网络爬虫:核心技术、Scrapy框架、分布式爬虫》适用专业:计算机相关专业、信息技术相关专业或工科类专业开课部门:计算机系一、课程的性质与目标《Python快速编程入门(第2版)》是面向计算机相关专业、信息技术相关专业或工科类专业的一门基础课,本课程涉及Python基础的入门知识,主要包括语法规范、流程控制、数据类型、函数、文件与数据格式化、面向对象、异常,以及Python计算生态与常用库,并在其中穿插了精彩实例、阶段案例。
通过对本课程的学习,学生能够全面系统地掌握Python开发的必备基础知识,具备独立开发Python简单项目的能力。
二、教学条件要求操作系统:Windows 7及以上版本Python环境:Python 3.8.2(64-bit)开发工具:PyCharm 2019.3.3或Jupyter 1.0.0三、课程的主要内容及基本要求第1章Python概述第2章Python基础第3章流程控制第4章字符串第5章组合数据类型第6章函数第7章文件与数据格式化第8章面向对象第9章异常第10章Python计算生态与常用库第11章飞机大战(完整版)四、学时分配五、考核模式与成绩评定办法本课程为考试课程,期末考试采用百分制的闭卷考试模式。
学生的考试成绩由平时成绩(30%)和期末考试(70%)组成,其中,平时成绩包括出勤(5%)、作业(5%)、上机成绩(20%)。
六、选用教材和主要参考书七、大纲说明本课程的授课模式为:课堂授课+上机,其中,课堂主要采用多媒体的方式进行授课,并且会通过测试题阶段测试学生的掌握程度;上机主要是编写程序,要求学生动手完成指定的程序设计或验证。
Python精要参考(第二版)_翻译(1)
WeiZhong/-01-17Python 精要参考(第二版) Python Essential Reference, Second Edition 译文原著:David M Beazley 出版商: New Riders Publishing1. 第一章 Python 快速入门本章是Python 的快速入门,在这一章并不涉及 python 的特殊规则和细节,目标是通过示例使你快速了解Python 语言的特点。
本章简要介绍了变量,表达式,控制流,函数以及输入/输出的基本概念,在这一章不涉及Python 语言的高级特性。
尽管如此,有经验的程序员还是能够通过阅读本章的材料创建高级程序。
我们鼓励新手通过运行示例,亲身体验一把Python 。
1.1. 运行PythonPython 程序通过解释器执行。
如果你的机器已经装好了python ,简单的在命令行键入python 即可运行python 解释器。
在解释器运行的时,会有一个命令提示符 >>>, 在提示符后键入你的程序语句,键入的语句将会立即执行。
在下边的例子中,我们在>>>提示符后边键入最常见的显示"Hello World"的命令:在Windows 下,只需双击一个.py 文件就能执行这个python 程序。
windows 会自动调用python 解释程序,然后启动一个终端窗口(类DOS 窗口)来执行它。
在这种情况下,终端窗口会在程序执行完毕后立即关闭(经常是在你看到它的输出之前)。
为避免这个问题,你可以使用python集成开发环境,例如IDLE或Pythonwin。
另一个可行的方法是建立一个bat文件,在文件写入这样一行语句,如python -i helloworld.py。
运行这个批处理,程序在执行完成后会自动进入python解释器。
在解释器中,也可以通过函数execfile()来运行一个保存在磁盘上的程序,如下例:>>> execfile("helloworld.py")Hello World在UNIX下,你可以在程序的首行写入#! 魔法字符串来自动调用python解释器执行你的脚本。
python核心编程第二版答案
python核心编程第二版答案【篇一:python核心编程第二版第4章习题答案】属性是什么?请简单的描述一下。
答案:所有的python对象都拥有三个特性:身份,类型和值。
身份:每一个对象都有一个唯一的身份标识自己,任何对象的身份可以使用内建函数id()来得到。
这个值可以被认为是该对象的内存地址。
类型:对象的类型决定了该对象可以保存什么类型的值,可以进行什么样的操作,以及遵循什么样的规则。
可以使用内建函数type()查看对象的类型。
在python中类型也是对象。
值:对象标识的数据项。
4-2.类型。
不可更改(immutable)指的是什么?python的哪些类型是可更改(mutable)的,哪些不是?答案:不可更改指对象创建以后值不可以更新。
immutable的类型:数字,字符串,元组mutable的类型:列表,字典4-3.类型。
哪些python类型是按照顺序访问的,他们和映射类型的不同是什么?答案:string,tuple,list是按照顺序访问的。
字典是映射访问。
字典中的元素,他们的索引并不使用顺序的数字偏移量取值,它的元素无序存放,通过一个唯一的键来访问。
4-4.type()。
内建函数type()作什么?type()返回的对象是什么?答案:内建函数type()返回任意ptrhon对象的数据类型,而不局限于标准类型。
type()返回的值是一个类型对象。
4-5.str()和repr()。
内建函数str()与repr()之间的不同是什么?哪一个等价于反引号(``)操作符?答案:内建函数str()和repr()或反引号操作符()可以方便的以字符串的方式获取对象的内容、类型、数值属性等信息。
str()函数得到的字符串可读性好,而repr()函数得到的字符串通常可以用来重新获得该对象,通常情况下obj == eval(repr(obj))这个等式是成立的。
这两个函数接受一个对象作为其参数,返回适当的字符串。
PYTHON核心编程第二版习题解答及执行结果第二章PY3.4实现
PYTHON核心编程第二版习题解答及执行结果第二章PY3.4实现第二章习题解答2-4>>>num=input("please input a number:") please input a number:>>>num=int(input("please input a number:")) please input a number:2502-5(a)>>>i=0>>>while i<11:print(i)i+=11...(b)>>>i=0>>>for i in range(11):print(i)i+=11...2-6>>>num=int(input("please input a num:")) please input a num:366>>>if num<0:print('fushu')elif num>0:print('zheshu')else:print('zero')zheshu2-7>>>s=input('enter a string:') >>>for eachchar in s:print(eachchar)Field>>>for i in range(len(s)): print(i,s[i])0F1i2e3l4d>>>for i,x in enumerate(s): print(i,x)0F1i2e3l4d2-8>>>r=0>>>for i in range(5):r+=int(input('enter a num:'))enter a num:44enter a num:48enter a num:5563618enter a num:44662##uses sum()BIF and generator expressions>>>print(sum(int(input('please input a num:'))for i in range(5))) please input a num:2please input a num:2please input a num:2please input a num:2please input a num:210>>>2-10>>>while True:num=int(input("please input a num:(1-100)"))if num in range(101):print('corect')breakelse:print('error,try again!')please input a num:(1-100)122error,try again!please input a num:(1-100)12-15>>>num1=int(input("please input first number:")) please input first number:12>>>num2=int(input("please input2rd number:")) please input2rd number:5>>>num3=int(input("please input3st number:")) please input3st number:55>>>if num1>num2:num1,num2=num2,num1>>>if num1>num3:num1,num3=num3,num1>>>if num1>num3:num1,num3=num3,num1>>>print(num1,num2,num3)51255>>>print(num3,num2,num1)55125>>>makeT extFile.py#!/usr/bin/env/pythonprint('jhjjjjj')print('DONE'),附:第三四章例题执行结果及源码#例3.1#!/usr/bin/env python'makeTextFile.py--create text file'import os#get filenamewhile True:fname=input('Enter file name:')if os.path.exists(fname):#os.path.exists()函数:确认输入的文件名是否存在print("***ERROR:'%s'already exists"%fname)else:break#get file content(text)linesall=[]print("\nEnter lines('.'by itself to quit).\n")#loop until user terminates inputwhile True:entry=input('>')if entry=='.':breakelse:all.append(entry)#write lines to file with NEWLINE line terminatorfobj=open(fname,'w')#打开文件准备进行写操作fobj.write('\n'.join(all))#将内存中内容逐行写入文件fobj.close()#print('DONE!')'''#例3.2#!/usr/bin/env python'readTextFile.py--read and display text file'#get filenamefname=input('Enter file name:')print()#attempt to open file for readingtry:fobj=open(fname,'r')except IOError as e:#py3修改,旧版本为except IOError,e: print("***file open error:",e)else:#display contents to the screenfor eachLine in fobj:print(eachLine),fobj.close()#例4.1def displayNumType(num):print(num,'is',)if isinstance(num,(int,float,complex)):#isinstance()判断对象类型print('a number of type:',type(num).__name__)else:print('not a number at all!!')displayNumType(-69)displayNumType(9999999999999999999999)displayNumType(98.6)displayNumType(-5.2+1.9j)displayNumType('xxx')#v3.0后,确切的讲,int型(依赖运行环境C编译器中long型的精度)消失了,long 型替代int型,成为新的、不依赖运行环境的、无精度限制的(只要内存装得下)int型。
python核心编程第二版第2章习题答案
2-1.变量,print和字符串格式化操作符。
启动交互式解释器,给一些变量赋值(字符串,数值等)并通过输入变量名显示他们的值。
再用print语句做同样的事。
这两者有何区别?也尝试着使用字符串格式操作符%,多做几次,慢慢熟悉它。
答案:对于一个字符串,在仅使用变量名时,输出的字符串是用单引号括起来了的。
这是为了让非字符串对象也能以字符串的方式显示在屏幕上,即它显示的是该对象的字符串表示,而不仅仅是字符串本身。
如果使用print命令,能使输出更加友好。
2-2.程序输出。
阅读下面的Python脚本。
#!/usr/bin/env python1 +2 * 4(a)你认为这段脚本是用来做什么的?(b)你认为这段脚本会输出什么?(c)输入以上代码,并保存为脚本,然后运行它,它所做的与你的预期一样吗?为什么一样/不一样?(d)这段代码单独执行和在交互解释器中执行有何不同?试一下,然后写出结果。
(e)如何改进这个脚本,以便它能和你想象的一样工作?答案:(a)计算(b)输出9(c)不一样,不会有输出(d)在交互解释器中可以输出9(e)需添加一个print,即#!/usr/bin/env pythonprint 1 + 2 * 42-3.数值和操作符。
启动交互解释器,使用Python对两个数值(任意类型)进行加、减、乘、除运算。
然后使用取余操作符来得到两个数相除的余数,最后使用乘方操作符求A数的B次方。
答案:当使用x/y形式进行除法运算时,如果x和y都是整形,那么运算的结果就是运算的整数部分。
>>> print 10 / 33如果x和y中有一个是浮点数,那么会进行精确除法。
>>> print 10 / 3.03.33333333333所谓地板除,采用x//y的形式,得到不大于结果的最大整数值,这个运算时与操作数无关的。
>>> 1//2>>> 1.0//20.0>>> -1//2.0-1.02-4. 使用raw_input()函数得到用户输入。
Python--Python并行编程实战(第2版)
Python--Python并⾏编程实战(第2版)python 并⾏编程threading 线程线程由3个元素组成:程序计数器、寄存器和堆栈。
同⼀个进程内的多个线程可以共享当前进程资源包括:数据和操作系统资源。
线程有⾃⼰的状态: 就绪(ready)、运⾏(running)、阻塞(blocked)。
创建线程 --> 就绪就绪 --> 操作系统调度线程 --> 运⾏运⾏ --> 超时 --> 就绪运⾏ --> 线程等待某些条件 --> 阻塞运⾏ --> 条件得到满⾜ --> 就绪运⾏ --> 运⾏完成,线程终⽌threading.Thread 类init(group=None, target=None, name=None, args=(), kwargs={})参数group: 线程组,必须为None,为将来的实现保留的target: ⽬标函数name: 线程名args: ⽬标函数的参数元组kwargs: ⽬标函数的关键字参数字典daemon: 是否为后台线程⼀般主线程退出后,⼦线程还是在运⾏,如果希望主线程退出后⼦线程⾃动退出,则daemon就可以设置为True start()启动线程join()等待线程结束run()业务逻辑,定义Thread⼦类时,可覆盖此⽅法threading.currentThread 函数获取当前线程threading.Lock 类只能⼀个线程获取到锁,但是,不是得到锁的线程才能释放锁,其他线程可以主动释放锁aquire()获得锁release()释放锁locked()判断锁是否已被获取threading.RLock 类重⼊锁,⼀个线程可多次获取锁,每个aquire()都要有对应的release(),只有得到锁的线程才能释放锁aquire()获得锁release()释放锁⽰例1import datetimeimport randomimport threadingimport timedef print_(content):print(f'{datetime.datetime.now()} {content}')def work():thread_name = threading.current_thread().nameprint_(f'thread {thread_name} start working ...')time.sleep(random.randint(1, 5))print_(f'thread {thread_name} over.')lock = threading.Lock()def work_lock():thread_name = threading.current_thread().name# 不是得到锁的线程才能释放锁,其他线程可以主动释放锁# if lock.locked():# print_(f'thread {thread_name} release the lock')# lock.release()# 加锁之后,线程按顺序执⾏lock.acquire()print_(f'thread {thread_name} start working ...')# 锁的获取与释放的位置很重要,不同位置,表现的结果不⼀样# 启动之后就释放,则上⾯⽇志按顺序输出,over⽇志则会随机输出# lock.release()time.sleep(random.randint(1, 5))print_(f'thread {thread_name} over.')lock.release()r_lock = threading.RLock()def work_r_lock():thread_name = threading.current_thread().name# 加锁之后,线程按顺序执⾏r_lock.acquire()print_(f'thread {thread_name} start working ...')r_lock.acquire()print_(f'thread {thread_name} second require lock')print_(f'thread {thread_name} first release lock')r_lock.release()time.sleep(random.randint(1, 3))print_(f'thread {thread_name} over.')r_lock.release()def main():workers = []for i in range(10):# workers.append(threading.Thread(target=work, name=f'worker_{i}'))# workers.append(threading.Thread(target=work_lock, name=f'worker_lock_{i}'))workers.append(threading.Thread(target=work_r_lock, name=f'worker_r_lock_{i}'))for worker in workers:worker.start()for worker in workers:worker.join()print_('main end')def run_or_daemon():name = threading.current_thread().nameprint_(f'process {name} start ...')if name == 'background_process':for i in range(0, 5):print_(f'process {name} ---> {i}')time.sleep(3)else:for i in range(5, 10):print_(f'process {name} ---> {i}')time.sleep(1)print_(f'process {name} exist.')def main_daemon():background_proc = threading.Thread(target=run_or_daemon, name='background_process')no_background_proc = threading.Thread(target=run_or_daemon, name='no_background_process')background_proc.daemon = True# no_background_proc.daemon = Falseno_background_proc.start()background_proc.start()# background_proc.join()# no_background_proc.join()print_('main_daemon end.')if __name__ == '__main__':# main()main_daemon()threading.Semaphore 类信号量,内部维护⼀个计数器,默认计数器的值为1,当调⽤aquire()⽅法时计数器值等于零,则线程将被阻塞,直到其他线程调⽤release(),使得计算器的值⼤于零。
python核心编程第二版答案
python核心编程第二版答案【篇一:python核心编程第二版第4章习题答案】属性是什么?请简单的描述一下。
答案:所有的python对象都拥有三个特性:身份,类型和值。
身份:每一个对象都有一个唯一的身份标识自己,任何对象的身份可以使用内建函数id()来得到。
这个值可以被认为是该对象的内存地址。
类型:对象的类型决定了该对象可以保存什么类型的值,可以进行什么样的操作,以及遵循什么样的规则。
可以使用内建函数type()查看对象的类型。
在python中类型也是对象。
值:对象标识的数据项。
4-2.类型。
不可更改(immutable)指的是什么?python的哪些类型是可更改(mutable)的,哪些不是?答案:不可更改指对象创建以后值不可以更新。
immutable的类型:数字,字符串,元组mutable的类型:列表,字典4-3.类型。
哪些python类型是按照顺序访问的,他们和映射类型的不同是什么?答案:string,tuple,list是按照顺序访问的。
字典是映射访问。
字典中的元素,他们的索引并不使用顺序的数字偏移量取值,它的元素无序存放,通过一个唯一的键来访问。
4-4.type()。
内建函数type()作什么?type()返回的对象是什么?答案:内建函数type()返回任意ptrhon对象的数据类型,而不局限于标准类型。
type()返回的值是一个类型对象。
4-5.str()和repr()。
内建函数str()与repr()之间的不同是什么?哪一个等价于反引号(``)操作符?答案:内建函数str()和repr()或反引号操作符()可以方便的以字符串的方式获取对象的内容、类型、数值属性等信息。
str()函数得到的字符串可读性好,而repr()函数得到的字符串通常可以用来重新获得该对象,通常情况下obj == eval(repr(obj))这个等式是成立的。
这两个函数接受一个对象作为其参数,返回适当的字符串。
python核心编程第二版课后题答案第九章
9.11 练习9–1. 文件过滤. 显示一个文件的所有行, 忽略以井号( # )开头的行. 这个字符被用做Python , Perl, Tcl, 等大多脚本文件的注释符号.附加题: 处理不是第一个字符开头的注释.9–2. 文件访问. 提示输入数字N 和文件F, 然后显示文件F 的前N 行.9–3. 文件信息. 提示输入一个文件名, 然后显示这个文本文件的总行数.9–4. 文件访问. 写一个逐页显示文本文件的程序. 提示输入一个文件名, 每次显示文本文件的25 行, 暂停并向用户提示"按任意键继续.", 按键后继续执行.9–6. 文件比较. 写一个比较两个文本文件的程序. 如果不同, 给出第一个不同处的行号和列号.9–7. 解析文件. Win32 用户: 创建一个用来解析Windows .ini 文件的程序.这道题我没看懂,如何解析???9–9. Python 文档字符串. 进入Python 标准库所在的目录. 检查每个 .py 文件看是否有__doc__ 字符串, 如果有, 对其格式进行适当的整理归类. 你的程序执行完毕后, 应该会生成一个漂亮的清单. 里边列出哪些模块有文档字符串, 以及文档字符串的内容. 清单最后附上那些没有文档字符串模块的名字.附加题: 提取标准库中各模块内全部类(class)和函数的文档.这道题忽悠了我一个晚上。
第一:根本就不存在__doc__的字符串,当我们运行模块.__doc__的时候,实际上是读取开头的字符串。
所以我们要判断是开头是否存在“”“字符串”“”这样的格式。
程序如下:最近还花了点时间学习wxpython,专门用来对付习题9-10,9-11这种图形界面的设计,但是发现学习的蛋疼,可能我这人不太喜欢用UI这些东西吧。
所以,习题9-10,9-11,9-12就不做了。
9–13. 命令行参数a) 什么是命令行参数, 它们有什么用?b) 写一个程序, 打印出所有的命令行参数.a)跟随着命令写入的参数,主要用于linux下运行程序习题9-14程序输入输出:9–15. 复制文件. 提示输入两个文件名(或者使用命令行参数). 把第一个文件的内容复制到第二个文件中去.9–16. 文本处理. 人们输入的文字常常超过屏幕的最大宽度. 编写一个程序, 在一个文本文件中查找长度大于80 个字符的文本行. 从最接近80 个字符的单词断行, 把剩余文件插入到下一行处.程序执行完毕后, 应该没有超过80 个字符的文本行了.9–17. 文本处理. 创建一个原始的文本文件编辑器. 你的程序应该是菜单驱动的, 有如下这些选项:1) 创建文件(提示输入文件名和任意行的文本输入),2) 显示文件(把文件的内容显示到屏幕),3) 编辑文件(提示输入要修改的行, 然后让用户进行修改),4) 保存文件, 以及5) 退出.9–18. 搜索文件. 提示输入一个字节值(0 - 255)和一个文件名. 显示该字符在文件中出现的次数.9–19. 创建文件. 创建前一个问题的辅助程序. 创建一个随机字节的二进制数据文件, 但某一特定字节会在文件中出现指定的次数. 该程序接受三个参数:1) 一个字节值( 0 - 255 ),2) 该字符在数据文件中出现的次数, 以及3) 数据文件的总字节长度.这道题很难。
Python核心编程(第二版)第十章习题答案
10.1 引发异常。
以下的哪个因素会在程序执行时引发异常?注意这里我们问的并不是异常的原因。
a)用户;b)解释器;c)程序;d)以上所有;e)只有b)和c);f)只有a)和c)。
答案:f 10-2.引发异常。
参考上边问题的列表,哪些因素会在执行交互解释器时引发异常?答案:f 10-3.关键字。
用来引发异常的关键字有哪些?答案:raise 10-4.关键字。
try-except 和try-finally 有什么不同?答案:try-except :当try 代码块运行出错,except 代码块才会被执行(匹配到相应异常时),处理完异常后try-except 后的代码会继续往下执行;try-finally :不管try 代码块是否出现异常,最终都会执行finally 里的代码。
如果出现异常,执行完finally 代码块后,异常会继续往上层抛。
10-5.异常。
下面这些交互解释器下的Python 代码段分别会引发什么异常(参阅表10.2给出的内建异常清单):(a)>>>if 3 < 4 then:print '3 is less than 4!' (b)>>>aList = ['Hello','World','Anyone','Home?'] >>>print 'the last string in aList is: ',aList[len(aList)] (c)>>>x (d)>>>x = 4 % 0 (e)>>>import math >>>i = math.sqrt(-1) 答案:(a)SyntaxError: invalid syntax (b)IndexError: list index out of range (c)NameError: name 'x' is not defined (d)ZeroDivisionError: integer division or modulo by zero (e)ValueError: math domain error 10-6.改进的open()。
python核心编程答案.pdf
python核心编程答案.pdfpython核心练习(第二章)2-3a=int(input('A='))b=int(input('B='))print('A-B=%d,A+B=%d\nA/B=%d,A**B=%d,A%%B=%d' % (a-b ,a+b ,a/b,a**b,a%b))2-4(a)print(input('Enter a string:'))(b)print(int(input('Enter a value:')))2-5(a)i=0while i<11:print(i)i+=1(b)for i in range(11): print(i) 2-6v=int(input('Enter a number to determine positive or negative:')) if v<0:print('%d is negative' % v)elif v==0:print('you enter zero')else:print('%d is positive' % v)2-7while 循环s=input('Enter a string:') i=0while i<len(s):< p="">print(s[i])i+=1for 循环s=input('Enter a string:') for i in s: print(i)2-8while 循环print('Enter five number') v=[]i=0s=0while i<5 :a=input('n%d=' % (i+1))v.extend([int(a)])s=s+v[i]i+=1print(v)print('sum=%d' % s)print('Enter five number')v=[]s=0for i in range(5):a=input('n%d=' % (i+1))v.extend([int(a)])s=s+v[i]print(v)print('sum=%d' % s)2--9print('Enter five number')v=[]s=0for i in range(5):a=input('n%d=' % (i+1))v.extend([int(a)])s=s+v[i]print('ave=%f' % (float(s)/len(v))) 2-10i=1n=int(input('Enter a number between 1-100:')) if n<=100 and n>=1:print('Done')i=0else:print('Error')2-11while True:s=0c=int(input("'1'sum,'2'ave,'0'exit:\n"))if c==1:for i in range(5):n=int(input('n%d=' % (i+1)))s+=nprint(s)if c==2:for i in range(5):n=int(input('n%d=' % (i+1)))s+=nprint(float(s/5))if c==0:break2-15a=int(input('a='))b=int(input('b='))c=int(input('c='))n=[]a,b=b,aif a>c:a,c=c,aif b>c:b,c=c,bn.extend([a,b,c])print(n)python核心练习(第三章)import osls=os.linesepdef write():while True:fname=input('Enter file name:')if os.path.exists(fname):print('Error %s already exists ' % fname) else: breakall=[]print("\nEnter lines ('.' by itself to quit).\n") while True:entry=input('>')if entry=='.':breakelse:all.append(entry)fobj=open(fname,'w')fobj.writelines(['%s%s' % (x,ls) for x in all]) fobj.close()print('Done')def read():while True:fname=input('Enter filename:')if not os.path.exists(fname):print('sorry,%s is not exists' % fname) else:breaktry:fobj=open(fname,'r')except IOError as e:print("*** file open error" ,e)else:for eachline in fobj:print (eachline),fobj.close()i=0while i!='q':i=input("'r'read,'w',write,'q'quite:")if i=='r':read()elif i=='w':write()python核心练习(第四、五章)4-1python对象的三个属性,身份,类型,值(ID,type,value)除了值之外其他两个都是只读的如果对象支持更新操作,那么他的值就是可改变的,否也是只读的5-2def mul(a,b):m=a*breturn(m)x=int(input('x='))y=int(input('y='))print(mul(x,y))5-3def grade(a):if a>100 or a<0:print("error,please,input your score between 1 to 100") elif a>=90:print("A")elif a>=80:print("B")elif a>=70:print("C")elif a>=60:print("D")else:print("F")while True:x=int(input("Enter your score:"))if x==0:breakelse:grade(x)5-4def ly(y):if (y%100!=0 and y%4==0) or y%400==0: print('%d is leap year' % y)else:print('%d is not leap year' % y)while True:x=int(input('Enter the year:'))if x==0:breakelse:ly(x)5-5def cd(m0):if m0<0 or m0>1:print('Error,请输入0到1之间的金额')else:m=m0*100a=m/25a1=m%25b=a1/10b1=a1%10c=b1/5c1=b1%5d=c1print('%f美元=25美分x%d+10美分x%d+5美分x%d+1美分x%d' % (m0,a,b,c,d))while True:m0=float(input('请输入金额:'))if m0==0:breakelse:cd(m0)5-6while True:s=input('请输入要计算的式子:\n')if s==0:breakelse:if s.find('*')!=-1:ls=s.split('*')print(float(ls[0])*float(ls[1])) elif s.find('+')!=-1:ls=s.split('+')print(float(ls[0])+float(ls[1])) elif s.find("^")!=-1:ls=s.split("^")print(float(ls[0])**float(ls[1])) elif s.find('/')!=-1:ls=s.split('/')print(float(ls[0])/float(ls[1])) elif s.find('%')!=-1:ls=s.split('%')print(float(ls[0])%float(ls[1])) 5-8import mathdef sqcu():a=float(input('输入正方形或立方体的边长:'))print('边长为',a,'的正方形面积是',round(a*a,3))print('边长为',a,'立方体体积是',a**3)def cisp():r=float(input('输入圆或球的半径:'))print('半径为',r,'的圆面积是',round(math.pi*(r**2),3))print('半径为',r,'的球的体积是',round(math.pi*(r**3)*4/3,3)) sqcu()cisp()5-10def FtoC():f=float(input('输入华氏温度:'))c=(f-32)*(5/9)print(f,'华氏度等于',round(c,3),'摄氏温度')FtoC()5-11def evod():e=[]o=[]for i in range(21):if i%2==0:e.append(i)else:o.append(i)print('偶数:',e,'\n奇数:',o)def judiv():a,b=int(input('enter the first number:')),int(input('enter the second number:')) if a%b==0:print(a,'能被',b,'整除')else:print(a,'不能被',b,'整除')evod()judiv()5-13def hmtom():hm=input("输入时间(格式'hh:mm'):")lhm=hm.split(':')m=float(lhm[0])*60+float(lhm[1])print(m)hmtom()5-15def gcd():a,b=int(input('a=')),int(input('b='))t1,t2=a,bwhile b!=0:if a<b:< p="">a,b=b,aelse:a,b=b,a%bprint('最大公约数是%d,最小公倍数是%d' % (a,t1*t2/a)) gcd() 5-16def payment():s=float(input('Enter opening balance:'))p=float(input('Enter monthly payment:'))print("Pymt# Paid Remaining Balance")print("------- ------- -----------")n=0print(n," ",p," ",round(s,2))while s>=p:s=s-pn=n+1print(n," ",p," ",round(s,2))print(n," ",round(s,2)," ",p)while True:payment()5-17import randoml=[]i=0N=random.randint(2,100) while i<="" p="">n=random.randint(0,2**31)l.append(n)i+=1print(l)print('\n')for x in range(len(l)):for y in range(x,len(l)): if l[x]<l[y]:< p="">l[y],l[x]=l[x],l[y] print(l) </l[y]:<></b:<></len(s):<>。
关于《Python核心编程》第2版和第3版
关于《Python核⼼编程》第2版和第3版关于《Python核⼼编程》第2版和第3版以前开始学Python的时候,根据某⼤神的建议买了本《Python核⼼编程》第2版,慢慢学习。
⽽最近回家没带书回来,刚好JD有活动,就买了本第3版的《Python核⼼编程》。
拿到⼿上翻了翻⽬录,发现有点不对劲:第3版没有基础语法,都是正则表达式、⽹络编程及Web开发等应⽤的内容。
难道同⼀本书的第2版和第3版相差这么⼤?仔细看了下封⾯发现⼀点端倪。
3版封⾯的顶部印有书的英⽂名:Core Python Applications Programming,即Python核⼼应⽤编程。
搜了下第2版封⾯,写的是:Core Python Programming。
两者封⾯如下图:......根本就不是同⼀本书嘛!为了证实这个想法,我以“Python核⼼编程第三版”为关键词google下。
果然,排在第⼀位,编程派上的⼀篇⽂章就是对这个问题的解释:《Python核⼼编程(第2版)》是《Python核⼼》卷⼀的第⼆版《Python核⼼编程(第3版)》是《Python核⼼》卷⼆的第三版书名(中⽂)相同,作者相同,封⾯也极度相似,估计把这两本书当成⼀本书的两个版本的⼈不少吧。
译者和责编实在不应该将不同的书的书名译成相同。
另外《Python核⼼编程(第2版)》有没有真正的第3版呢?在《Python核⼼应⽤编程(第3版)》第13页的提⽰中有⼀句话:“在Core Python Programming 或者即将出版的Core Python Language Fundamentals 的执⾏章节中……”。
这说明下个版本已经改名了,⼤概是《Python核⼼语⾔基础》之类的。
⼀⽂的结尾处也对此有所说明。
《Python语言及其应用 第2版 》读书笔记思维导图
9.3 实参 与形参
0 4
9.4 文档 字符串
0 6
9.6 内部 函数
0 5
9.5 作为 “头等公 民”的函 数
0 1
9.7 匿名 函数: lambda
0 2
9.8 生成 器
0 3
9.9 装饰 器
0 4
9.10 名 称空间和 作用域
0 6
9.12 递 归
0 5
9.11 名 称中_和 __的用法
4.4 True是什么
4.5 使用in进行 多重比较
4.6 新秀:我是 海象
4.7 后续内容 4.8 练习
0 1
5.1 使用 引号创建 字符串
0 2
5.2 使用 str()创 建字符串
0 3
5.3 使用 转义
0 4
5.4 使用 +拼接
0 6
5.6 使用 []获取字 符
0 5
5.5 使用 *重复
0 1
16.7 全文数据 库
16.9 练习
0 1
17.1 TCP/IP
0 2
17.2 联 网模式
0 3
17.3 “请求– 回应”模 式
0 4
17.4 “发布– 订阅”模 式
0 5
17.5 互 联网服务
0 6
17.6 Web服 务和API
17.7 数据序列化
17.8 远程过程调 用
17.9 远程管理工 具
22.8 后续内容
22.7 Python和 各个科学领域
22.9 练习
附录A 写给初级程序员的计算 机软硬件知识
A.1 硬件
A.2 软件
附录B 安装Python 3
0 1
python核心编程第二版 第二章笔记
Python核心编程第二版第二章笔记第一节 Python 数据类型1.1 数字类型Python中数字类型包括整型和浮点型。
整型的表示范围取决于计算机的内存大小,而浮点型则表示浮点数,使用科学计数法表示。
1.2 字符串类型字符串在Python中使用引号(单引号或双引号)来表示,可以进行各种字符串操作,如拼接、切片等。
1.3 列表和元组列表和元组是Python 中的两种常用序列类型,区别在于列表可变,元组不可变。
1.4 字典字典是一种用于存储键值对的数据类型,可以通过键来访问对应的值。
第二节控制流程2.1 条件语句Python 的条件语句使用 if、elif 和 else 关键字,可以实现根据特定条件执行不同的代码块。
2.2 循环语句Python 的循环语句包括 for 循环和 while 循环,可实现对序列或条件的重复执行。
第三节函数3.1 定义函数使用 def 关键字定义函数,可以接收参数并返回值。
3.2 函数的参数函数可以接收不定数量的参数,包括位置参数、默认参数和关键字参数。
3.3 匿名函数使用 lambda 关键字可以定义匿名函数,简化代码结构。
第四节模块和包4.1 模块的导入使用 import 关键字可以导入其他 Python 文件中的函数和变量,可以利用其他模块中的功能。
4.2 包的概念包是一种组织模块的方式,可以将相关功能的模块放在同一个文件夹下,并在文件夹中创建一个 __init__.py 文件。
第五节异常处理5.1 异常的种类Python 中包括多种异常,如 NameError、TypeError 等,可以通过 try...except...finally 来捕获和处理异常。
5.2 异常的处理使用 try 语句可以尝试执行可能出现异常的代码块,使用 except 可以捕获相应的异常并进行处理,finally 用于无论是否出现异常都执行的代码块。
结语Python核心编程第二版的第二章介绍了Python的数据类型、控制流程、函数、模块和包以及异常处理等内容。
python编程从入门到实践 第2版 章节
《Python编程从入门到实践第2版》是一本深受学习Python语言的人喜爱的书籍,本文将从深度和广度的角度评估这本书,并撰写一篇有价值的文章,帮助你更深入地理解这个主题。
1. 第一章 - 起步在《Python编程从入门到实践第2版》的第一章,作者介绍了Python编程的基本概念和概览,让读者对Python有一个初步的了解。
这一章节以浅显易懂的语言,为读者打下了良好的基础,让他们对Python有一个直观的认识。
在学习编程语言时,建立良好的基础十分重要,因为它决定了后续学习的深入程度。
2. 第二章 - 变量和简单数据类型在第二章中,作者详细介绍了Python中的变量和简单数据类型。
这一章节实际上是Python编程的起点,因为只有掌握了变量和数据类型,才能够进行更加复杂的操作。
对于初学者来说,这一章可能是比较枯燥的,但却是非常重要的。
读者需要仔细阅读,并且多加练习,以便掌握这些基本概念。
3. 第三章 - 列表简介列表是Python中非常重要的数据类型,第三章详细介绍了列表的基本概念和操作。
阅读这一章节,读者将会对列表有一个深入的了解,并且会学会如何使用列表解决实际问题。
列表在实际编程中使用非常广泛,因此对于读者来说,这一章节是非常重要的。
4. 第四章 - 操作列表第四章是对列表进行进一步操作的介绍,包括对列表的增加、删除和修改等操作。
这一章节将帮助读者更加深入地了解列表的操作方法,提高他们在实际编程中的操作能力。
5. 第五章 - if语句在第五章中,作者介绍了Python中的条件语句if语句的使用方法。
if语句是程序中的一个非常重要的控制结构,它决定了程序的执行流程。
阅读这一章节,读者将会对if语句有一个全面的了解,并且能够编写简单的条件判断程序。
6. 第六章 - 字典字典是Python中非常重要的数据类型,第六章详细介绍了字典的基本概念和操作。
阅读这一章节,读者将会了解字典的特点和使用方法,并且会学会如何使用字典解决实际问题。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
print 'positive' else:
print 'zero'
1011
1012
Appendix A
7. Loops and strings
s = raw_input('enter a string: ')
for eachChar in s: print eachChar
3.), '(cubic units)'
sqcube() cirsph()
1014
Appendix A
11. Modulus a)
for i in range(0, 22, 2): print i
or for i in range(22): if i % 2 == 0: print i
b) for i in range(1, 20, 2): print i
Answers to Selected Exercises
Chapter 2
5. Loops and numbers a)
i=0 while i < 11:
i += 1
b) for i in range(11): pass
6. Conditionals
n = int(raw_input('enter a number: ')) if n < 0:
Since there exists only one (type) object for each built-in type, there is no need to check their values; hence, only the latter form should be used.
Chapter 5
# (does not print index)
or
for i in range(len(s)): print i, s[i]
or
i=0 slen = len(s) while i < slen:
print i, s[i]
or
for i, x in enumerate(s): print i, x
8. Loops and operators
Chapter 6
1. Strings find(), rfind(), index(), rindex(); can also use the in operator.
2. Identifiers
import string
alphas = string.letters + '_' alnums = alphas + string.digits
8. Geometry
import math
def sqcube(): s = float(raw_input('enter length of one side: ')) print 'the area is:', s ** 2., '(units squared)' print 'the volume is:', s ** 3., '(cubic units)'
6. Object equality type(a) == type(b)
type(a) is type(b)
whether the value of type(a) is the same as the value of type(b)... == is a value compare
whether the type objects returned by type(a) and type(b) are the same object
symbol
keyword
0x40L
number
big-daddy
symbol
2hot2touch
number
thisIsn'tAVar symbol
if
keyword
counter-1
symbol
Answers to Selected Exercises
1013
Chapter 4
1. Python objects All Python objects have three attributes: type, ID, and value. All are readonly with a possible exception of the value (which can be changed only if the object is mutable).
subtot = 0 for i in range(5):
subtot += int(raw_input('enter a number: ')) print subtot
or
# uses sum() BIF and generator expressions print sum(int(raw_input('enter a number: ')) for i in range(5))
5. str() vs. repr() repr() is a built-in function while str() was a built-in function that changed to a factory function in Python 2.2. They will both return a string representation of an object; however, str() returns a printable string representation while repr() (and the backquote operator ‘‘) return an evaluatable string representation of an object, meaning that it is a string that represents a (valid) Python object that would be created if passed to eval().
1016
Appendix A
Chapter 8
3. range() built-in function a)
range(10)
4. Prime numbers
import math def isprime(num):
count = int(math.sqrt(num)) while count > 1:
or
# range(0, 21, 2) okay too # range(21) okay too # range(1, 21, 2) okay too
for i in range(20): if i % 2 != 0: print i
# range(21) okay too
c)
When i % 2 == 0, it’s even (divisible by 2), otherwise it’s odd.
for eachLine in f:
if i == num:
break
print eachLine,
# suppress NEWLINE
i += 1
f.close()
13. Command-line arguments b)
import sys print "# of args", len(sys.argv) print "args:", sys.argv
or sorted(dict.keys())
4. Creating dictionaries
# assumes and list2 are the same length d = {} for i in range(len(list1)):
d[list1[i]] = list2[i]
or d = {} for i, x in enumerate(list1): d[x] = list2[i]
or d = dict(map(None, list1, list2))
or d = dict(zip(list1, list2))
7. Inverting dictionaries
list1 = oldDict.values() list2 = oldDict.keys() Now apply the solutions to Problem 4. Note that these solutions are destructive, meaning that for one-to-many dictionaries, keys that share the same values will only have the latest installed value for the value that is now a key. Extra Credit: Come up with a non-destructive solution where keys that share the same values in the old dictionary are now stored inside a list as the value for the corresponding key in the new dictionary.
def cirsph(): r = float(raw_input('enter length of radius: ')) print 'the area is:', math.pi * (r ** 2.), '(units squared)' print 'the volume is:', (4. / 3.) * math.pi * (r **