版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Python编写简单程序第二章课程目标课程目标1理解数据类型的概念35246熟悉Python中的基本数值数据类型能够使用Python的math库了解软件开发的过程掌握Python标识符和表达式的规则能够理解和编写Python语句,将信息输出到屏幕,为变量赋值。PART1软件开发过程分析问题确定规格说明创建设计实现设计测试维护1软件开发过程软件开发过程分析问题确定规格说明创建设计实现设计测试维护1软件开发过程软件开发过程对用户的需求进行去粗取精、去伪存真、正确理解用软件工程开发语言表达出来分析问题确定规格说明创建设计实现设计测试维护1软件开发过程软件开发过程准确描述程序的输入和输出是什么准确描述输入和输出的相互关系分析问题确定规格说明创建设计实现设计测试维护1软件开发过程软件开发过程规划程序的总体结构描述程序怎么做设计算法来满足规格说明分析问题确定规格说明创建设计实现设计测试维护1软件开发过程软件开发过程将设计翻译成计算机语言并放入计算机Python分析问题确定规格说明创建设计实现设计测试维护1软件开发过程软件开发过程以较小的代价发现尽可能多的错误常用的测试方法是黑盒法和白盒法分析问题确定规格说明创建设计实现设计测试维护1软件开发过程软件开发过程对软件进行适当修改纠正运行中发现的错误PART2示例程序:温度转换器2示例程序:温度转换器我想要一个能将摄氏温度转换为华氏温度的程序。好的,没问题。2示例程序:温度转换器分析问题确定规格说明创建设计实现设计测试维护摄氏温度华氏温度2示例程序:温度转换器分析问题确定规格说明创建设计实现设计测试维护0摄氏度=32华氏度100摄氏度=212华氏度
华氏度与摄氏度的比率为:(212−32)/(100−0)=(180/100)=9/5F表示华氏温度,C表示摄氏温度,转换公式:F=(9/5)C+k得到k=32,最后的关系公式是:F=(9/5)C+32代入0和32分别作为C和F2示例程序:温度转换器分析问题确定规格说明创建设计实现设计测试维护处理输入输出程序将提示用户输入一些信息:摄氏温度使用F=(9/5)C+32将其转换为:华氏温度在计算机屏幕上显示结果2示例程序:温度转换器分析问题确定规格说明创建设计实现设计测试维护使用伪代码,我们可以专注于算法而不是编程语言。使用“伪代码”来编写算法输入摄氏度温度(称为celsius)计算华氏度为(9/5)celsius+32输出华氏度2示例程序:温度转换器分析问题确定规格说明创建设计实现设计测试维护#convert.py#AprogramtoconvertCelsiustempstoFahrenheit#by:SusanComputewelldefmain():celsius=eval(input("WhatistheCelsiustemperature?"))fahrenheit=(9/5)*celsius+32print("Thetemperatureis",fahrenheit,"degreesFahrenheit.")main()2示例程序:温度转换器分析问题确定规格说明创建设计实现设计测试维护>>>WhatistheCelsiustemperature?0Thetemperatureis32.0degreesFahrenheit.>>>main()WhatistheCelsiustemperature?100Thetemperatureis212.0degreesFahrenheit.>>>main()WhatistheCelsiustemperature?-40Thetemperatureis-40.0degreesFahrenheit.>>>PART3程序要素3程序要素Python中包括模块名、函数名、变量名、类名和常量名,这些统称为标识。类型命名规则举例模块名/包名全小写字母,简单有意义,如果需要可以使用下划线math、sys函数名全小写字母,可以使用下划线增加可阅读性foo(),my_func()变量名全小写字母,可以使用下划线增强可读性age、my_var类名采用PascalCase命名规则,由多个单词组成名称,其每个单词的首字母大写MyClass常量名全部大写字母,可以使用下划线增加可阅读性LEFT、TAX_RATE表2-1各名称命名规则名称3程序要素名称DolphdolphdolPhPython语言是区分大小写的。我们不一样~3程序要素名称有一些标识符是Python内置的,称为“保留字”或“关键字”,具有特定意义。FalseclassfinallyisreturnNonecontinueforlambdatryTruedeffromnonlocalwhileanddelglobalnotwithaselififoryieldassertelseimportpass
asyncbreakexceptinraise
await表2-2Python关键字(35个)3程序要素表达式产生或计算新数据值的代码片段称为表达式。字面量、变量、常量的区别?字面量对字面值求值将返回一个该值所对应类型的对象字符串字节串整数浮点数复数如:数字3.9和1如java语言中intx;变量finalintX=10;
常量1,56,12.4‘张三’字面量
一般为字符串、数字本身3程序要素表达式产生或计算新数据值的代码片段称为表达式。字符串Python
中通过将字符括在引号("")中来表示字符串字面量"Hello""Enteranumberbetween0and1:"引号本身不是字符串的一部分3程序要素表达式>>>5858>>>"Helloworld"'Helloworld'>>>"58"'58'显示字符串的值时,将字符序列放在单引号中该值实际上是文本而不是数字3程序要素表达式产生或计算新数据值的代码片段称为表达式。标识符使用标识符作为变量来给名字赋值。当标识符作为表达式出现时,它的值会被取出,作为表达式的结果。3程序要素表达式>>>a=5>>>a5>>>b=6>>>b6>>>a+b11>>>print(a+b)11>>>print(c)Traceback(mostrecentcalllast):File"<stdin>",line1,in<module>NameError:name'c'isnotdefined注意:变量总是必须赋一个值,然后才能在表达式中使用3程序要素表达式复杂表达式都是通过简单表达式组合而成的。加法减法乘法除法乘方+-*/**整除//取余%3程序要素表达式>>>a=5>>>b=6>>>a+b11>>>a-b-1>>>a*b30>>>a/b0.8333333333333334>>>a**b156253程序要素表达式Python的数学运算符也遵循我们常见的四则运算的优先级以及交换律、结合律等。>>>a=5>>>b=6>>>((a+b)*(a-b/a))**(b-a)41.8注意,只有圆括号在数字表达式中是允许的。3程序要素表达式Python还提供了字符串的运算符。例如,可以“加”字符串:>>>"I"+""+"love"+""+"python"'Ilovepython'效果是创建一个新的字符串,把两个字符串“粘”在一起。被称为“连接”PART4输出语句4输出语句对每个语句的语法和语义有一套精确的规则PythonPython中有两种输出方式:表达式语句print()函数4输出语句Python中print为内置语句,使用print()函数时与其它函数的使用方法一样。键入print,后面的()列出我们需要打印的参数print(<expr>,<expr>,...,<expr>)print()包含函数名print带上带括号的表达式序列,用逗号分隔(<>)用于表示由Python代码的其他片段填充的“槽”括号内的名称表示缺少什么expr表示一个表达式不打印任何表达式的print也是合法的4输出语句Python中print为内置语句,使用print()函数时与其它函数的使用方法一样。键入print,后面的()列出我们需要打印的参数>>>print(3)3>>>print(3,2+4)36>>>print("helloworld")helloworld>>>print("thesumis",3+4)thesumis74输出语句当需要将多个print()函数的打印结果输出为一行时,可以用”end”关键字参数。print("Theansweris",end="")print(3+4)产生单行输出:Theansweris74输出语句当需要将输出转换成字符串时,此时我们可以使用repr()或str()函数来实现。str()函数返回一个函数易读的表达形式repr()函数返回一个解释器易读的表达形式4输出语句当需要将输出转换成字符串时,此时我们可以使用repr()或str()函数来实现。>>>s='helloworld'>>>str(s)'helloworld'>>>repr(s)"'helloworld'"输出的字符不带引号输出的字符带有引号PART5赋值语句5赋值语句简单赋值基本赋值语句具有以下形式:<variable>=<expr>variable是一个标识符expr是一个表达式赋值的语义是:右侧的表达式被求值,然后产生的值与左侧命名的变量相关联。5赋值语句简单赋值变量可以多次赋值,它总是保留最新赋的值。>>>x=6>>>x6>>>x=7>>>x7>>>x=x+1>>>x85赋值语句简单赋值变量就像一个可以输入值的方框。当一个变量改变时,旧的值被删除,新的值被写入。5赋值语句赋值输入输入是用一个赋值语句结合一个内置函数input实现的。<variable>=input(<prompt>)是一个字符串表达式,用于提示用户输入。当Python遇到对input调用时,此时就会提示用户输入一些文本,键入完成后按<Enter>键。用户输入的任何东西都会存储为字符串。文本输入5赋值语句赋值输入>>>str=input("请输入:")请输入:哈哈>>>print("你输入的内容是:",str)你输入的内容是:哈哈5赋值语句赋值输入<variable>=eval(input(<prompt>))eval是“evaluate(求值)”的缩写在这种形式中,用户键入的文本被求值为一个表达式,以产生存储到变量中的值。如:字符串“32”就变成数字32数字输入如果希望得到一个数字,而不是一些原始文本(字符串),需要对input进行eval。5赋值语句赋值输入>>>str=input("请输入数字:")请输入数字:4+5>>>str'4+5'>>>str=eval(input("请输入数字:"))请输入数字:4+5>>>str95赋值语句赋值输入eval函数功能非常强大,也有“潜在的危险”。当我们对用户输入求值时,本质上是允许用户输入一部分程序。Python将对他们输入的任何内容求值。输入恶意指令“代码注入”攻击5赋值语句同时赋值
有一个赋值语句的替代形式,允许我们同时计算几个值,我们把这称为“同时赋值”。形式如下:<var1>,<var2>,...,<varn>=<expr1>,<expr2>,...,<exprn>告诉Python对右侧所有表达式求值,然后将这些值赋给左侧命名的相应变量。5赋值语句同时赋值一个很常见的问题:将x和y的值交换。通常我们的做法是定义一个temp,将x与y相互交换,就像下面这样:temp=xx=yy=temp5赋值语句同时赋值当用Python的“同时赋值”时,这个问题就变得很简单了。>>>x=5>>>y=7>>>x,y=y,x>>>x7>>>y5只需要一行就可以解决两数互相交换的问题赋值是同时的,避免了擦除一个原始值5赋值语句同时赋值结合前面所学的的输入input语句进行同时赋值操作。defmain():print("求3个数的平均值")
score1,score2,score3=eval(input("请输入3个值:"))
average=(score1+score2+score3)/3print("平均值为:",average)main()输出结果如下:求3各数的平均值请输入3个值:34,45,56平均值为:45.0PART6数值数据类型6数值数据类型计算机刚开发出来时,它们主要被视为数字处理器。计算机程序存储和操作的信息通常称为“数据”不同种类的数据以不同的方式存储和操作6数值数据类型#Aprogramtocalculatethevalueofsomechangeindollarsdefmain():print("ChangeCounter")print()print("请输入您的各种硬币个数.")yuan=eval(input("有多少1元的硬币:"))fifty_cents=eval(input("有多少5角的硬币:"))twenty_cents=eval(input("有多少2角的硬币:"))ten_cents=eval(input("有多少1角的硬币:"))total=fifty_cents*.50+twenty_cents*.20+ten_cents*.10+yuan*1.0print()print("您拥有的硬币总额是",total)main()一个计算零钱的程序:6数值数据类型ChangeCounter请输入您的各种硬币个数.有多少1元的硬币:5有多少5角的硬币:4有多少2角的硬币:8有多少1角的硬币:6您拥有的硬币总额是9.2一个计算零钱的程序:输出结果示例6数值数据类型有多少1元的硬币:5有多少5角的硬币:4有多少2角的硬币:8有多少1角的硬币:6用户输入的值是整数total=fifty_cents*.50+twenty_cents*.20+ten_cents*.10+yuan*1.0硬币的值是分数的十进制表示不同的“数据类型”在计算机内部,整数和具有小数部分的数字以不同的方式存储。6数值数据类型对象的数据类型决定了它可以具有的值以及可以对它执行的操作。整数int值可以是正数和负数小数float当需要判断数字是什么数据类型时,可以使用Python内置的type函数>>>type(5)<class'int'>>>>type(5.0)<class'float'>>>>a=5>>>type(a)<class'int'>>>>a=5.0>>>type(a)<class'float'>6数值数据类型为什么需要两种数字类型?表示计数的值不能是小数(如不能有3.8只小动物)涉及各种数据类型的操作效率的问题float类型只能表示对实数的近似因为浮点数不精确,所以尽可能使用int6数值数据类型Python除了支持整型和浮点型,还支持长整型(long)和复数(complex)。表2-3一些数字类型的实例intlongfloatcomplex1051924361L0.03.14j-10-0x19323L3.213j0x100xDEFABCECBDAECBFBAEL-56.259.322e-32j-0x10-47218852996548-32.54e1003e+23j6数值数据类型值的数据类型决定了可以使用的操作,Python支持对数值的一般数学运算。表2-4Python内置的数值操作操作符操作+加-减*乘/浮点除**指数abs()绝对值//整数除%余6数值数据类型>>>3+47>>>3.0+4.07.0>>>3*412>>>3.0*4.012.0>>>4**364>>>4.0**364.0>>>4.0**3.064.0>>>abs(5)5>>>abs(-3.5)3.5整形数据加法和浮点型数据加法所得结果相同6数值数据类型>>>100/333.333333333333336>>>100//333>>>100.0/3.033.333333333333336>>>100.0//3.033.0>>>100.00//3.0033.0>>>100%31>>>100.0%3.01.0/用于常规除法,总是返回一个浮点数。//用于整型除法,总是产生一个整数。虽然整数除法的结果总是一个整数,但结果的数据类型取决于操作数的数据类型,分数分量为0。结果的数据类型取决于操作数的数据类型。PART7类型转换和舍入7类型转换和舍入整数int+整数int整数int小数float+小数float小数float当在表达式中混合int和float时,Python会如何处理?7类型转换和舍入x=5.0+2将浮点型5.0变为整型5,然后再与2相加将整型2变为浮点型2.0,再与5.0相加将浮点型转换为整型是很危险的,当浮点型小数点后不为0时,当将浮点型转换为整型时,则会导致结果错误。整型转换为浮点型,只需要在整型后加上小数点即可。Python会自动将int转换为浮点数,并执行浮点运算以产生浮点数结果。7类型转换和舍入>>>int(3.94)3>>>float(3)3.0>>>float(int(3.14))3.0>>>int(float(3))3我们也可以执行类型转换,这称为显式类型。(也称为强制转换)float转换为int就是丢弃浮点值的小数部分,该值将被截断,而不是舍入。7类型转换和舍入>>>round(3.14)3>>>round(3.5)4对数字进行四舍五入的更一般方法是使用内置的round函数,它将数字四舍五入到最接近的整数值。7类型转换和舍入>>>pi=3.141592653589793>>>round(pi,2)3.14>>>round(pi,3)3.142调用round会产生一个int值,因此,对round的简单调用是将float转换为int的另一种方法。提供第二个参数,指定小数点后的数字位数。7类型转换和舍入>>>int("1234")1234>>>float("1234")1234.0>>>float("1234.5")1234.5类型转换函数int和float还可以将数字字符串转换为数字类型,作为替代eval从用户获取数字数据的另一种方法。可以有效的解决注入攻击的安全隐患。7类型转换和舍入#Aprogramtocalculatethevalueofsomechangeindollarsdefmain():print("ChangeCounter")print()print("请输入您的各种硬币个数.")yuan=int(input("有多少1元的硬币:"))fifty_cents=int(input("有多少5角的硬币:"))twenty_cents=int(input("有多少2角的硬币:"))ten_cents=int(input("有多少1角的硬币:"))total=yuan*1.0+fifty_cents*.50+twenty_cents*.20+ten_cents*.10print()print("您拥有的硬币总额是",total)main()一个计算零钱的程序(改进版本):优点避免代码注入攻击的风险确保用户只能输入有效的整数7类型转换和舍入>>>#simultaneousinputusingeval>>>x,y=eval(input("Enter(x,y):"))Enter(x,y):3,4>>>x3>>>y4>>>#doesnotworkwithfloat>>>x,y=float(input("Enter(x,y):"))Enter(x,y):3,4Traceback(mostrecentcalllast):File"<stdin>",line1,in<module>ValueError:couldnotconvertstringtofloat:'3,4'缺点不支持同时输入PART8使用math库是一个模块,包含了很多封装好的函数表达式。8使用math库Python我有math库!利用math库可以使用浮点值完成复杂的数学运算三角函数运算对数运算……库8使用math库二次方程的标准式为
,要求该方程的解,则可以利用二次方程求解公式求解:
利用math库来完成该方程的求解8使用math库importmathdefmain():print("求解二次方程")print()a=float(input("输入系数a:"))b=float(input("输入系数b:"))c=float(input("输入系数c:"))discRoot=math.sqrt(b*b-4*a*c)root1=(-b+discRoot)/(2*a)root2=(-b-discRoot)/(2*a)print()print("方程的解为:",root1,root2)main()输入方程的参数a,b,c的值,输出方程的两个解:问题
8使用math库importmathdefmain():print("求解二次方程")print()a=float(input("输入系数a:"))b=float(input("输入系数b:"))c=float(input("输入系数c:"))
if(b*b-4*a*c>=0):discRoot=math.sqrt(b*b-4*a*c)root1=(-b+discRoot)/(2*a)root2=(-b-discRoot)/(2*a)print("\n方程的解为:",root1,root2)else:discRoot=math.sqrt(4*a*c-b*b)s=-b/(2*a)root1=(discRoot)/(2*a)root2=(discRoot)/(2*a)print("\n方程的虚解1为:",s,"+",root1,"j")print("\n方程的虚解2为:",s,"+",root2,"j")main()
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 路侧停车劳务外包合同
- 2025年氢燃料船舶动力系统安全检查指南
- 智慧公交刷卡扫码一体机2025年的合同协议
- 生活日常-血糖正常值范围
- 护理日语用药指导
- 2025年房屋买卖合同示例二篇
- 月经不调的物理治疗手段
- 护理员用药护理操作指南
- 年处理20万吨生活垃圾炉渣资源化利用项目可行性研究报告模板立项申批备案
- 椎管内肿瘤患者的化学治疗与护理管理
- 开放性骨折的护理常规
- 2025年入党积极分子培训考试试卷及答案(三)
- 关于加强医药卫生领域廉政建设的意见(2025年版)解读
- 2024建筑外墙饰面层缺陷检测与评定标准
- 2024年全国高考英语试题及答案-全国卷2
- 重庆B卷2022年中考语文现代文阅读真题及答案
- 《事故汽车常用零部件修复与更换判别规范》
- DL-T623-2010电力系统继电保护及安全自动装置运行评价规程
- 液压与液力传动全套课件
- 弯头知识课件
- SBT 11215-2018 商品交易市场建设与经营管理术语
评论
0/150
提交评论