企业网站管理系统(多语言),关于加强教体局网站建设,微电影网站模板,建设网站的费用入什么科目一、分支结构
应用场景
我们写的Python代码都是一条一条语句顺序执行#xff0c;这种代码结构通常称之为顺序结构。然而仅有顺序结构并不能解决所有的问题。
if语句的使用
在Python中#xff0c;要构造分支结构可以使用if、elif和else关键字。所谓关键字就是有特殊含义的…一、分支结构
应用场景
我们写的Python代码都是一条一条语句顺序执行这种代码结构通常称之为顺序结构。然而仅有顺序结构并不能解决所有的问题。
if语句的使用
在Python中要构造分支结构可以使用if、elif和else关键字。所谓关键字就是有特殊含义的单词像if和else就是专门用于构造分支结构的关键字很显然你不能够使用它作为变量名。下面的例子中演示了如何构造一个分支结构。
username input(请输入用户名: )
password input(请输入口令: )
# 用户名是admin且密码是123456则身份验证成功否则身份验证失败
if username admin and password 123456:print(身份验证成功!)
else:print(身份验证失败!)需要说明的是不同于C、Java等编程语言Python中没有用花括号来构造代码块而是使用了缩进的方式来表示代码的层次结构如果if条件成立的情况下需要执行多条语句只要保持多条语句具有相同的缩进就可以了。换句话说连续的代码如果又保持了相同的缩进那么它们属于同一个代码块相当于是一个执行的整体。缩进可以使用任意数量的空格但通常使用4个空格强烈建议大家不要使用制表键来缩进代码如果你已经习惯了这么做可以设置代码编辑工具将1个制表键自动变成4个空格很多的代码编辑工具都支持这项功能。 提示if和else 的最后面有一个:它是用英文输入法输入的冒号程序中输入的、、、(、)等特殊字符都是在英文输入法状态下输入的。有很多初学者经常不注意这一点结果运行代码的时候就会遇到很多莫名其妙的错误提示。强烈建议大家在写代码的时候都打开英文输入法注意是英文输入法而不是中文输入法的英文输入模式这样可以避免很多不必要的麻烦。 如果要构造出更多的分支可以使用if...elif...else...结构或者嵌套的if...else...结构下面的代码演示了如何利用多分支结构实现分段函数求值。 f ( x ) { 3 x − 5 , ( x 1 ) x 2 , ( − 1 ≤ x ≤ 1 ) 5 x 3 , ( x − 1 ) f(x) \begin{cases} 3x - 5, (x \gt 1) \\ x 2, (-1 \le x \le 1) \\ 5x 3, (x \lt -1) \end{cases} f(x)⎩ ⎨ ⎧3x−5,x2,5x3,(x1)(−1≤x≤1)(x−1) 分段函数求值x float(input(x ))
if x 1:y 3 * x - 5
elif x -1:y x 2
else:y 5 * x 3
print(ff({x}) {y})当然根据实际开发的需要分支结构是可以嵌套的例如判断是否通关以后还要根据你获得的宝物或者道具的数量对你的表现给出等级比如点亮两颗或三颗星星那么我们就需要在if的内部构造出一个新的分支结构同理elif和else中也可以再构造新的分支我们称之为嵌套的分支结构也就是说上面的代码也可以写成下面的样子。 分段函数求值x float(input(x ))
if x 1:y 3 * x - 5
else:if x -1:y x 2else:y 5 * x 3
print(ff({x}) {y})说明 大家可以自己感受和评判一下这两种写法到底是哪一种更好。在Python之禅中有这么一句话“Flat is better than nested”之所以提倡代码“扁平化”是因为代码嵌套的层次如果很多会严重的影响代码的可读性所以使用更为扁平化的结构在很多场景下都是较好的选择。 一些例子
例子1英制单位英寸与公制单位厘米互换。 英制单位英寸和公制单位厘米互换value float(input(请输入长度: ))
unit input(请输入单位: )
if unit in or unit 英寸:print(%f英寸 %f厘米 % (value, value * 2.54))
elif unit cm or unit 厘米:print(%f厘米 %f英寸 % (value, value / 2.54))
else:print(请输入有效的单位)例子2百分制成绩转换为等级制成绩。 要求如果输入的成绩在90分以上含90分输出A80分-90分不含90分输出B70分-80分不含80分输出C60分-70分不含70分输出D60分以下输出E。 百分制成绩转换为等级制成绩score float(input(请输入成绩: ))
if score 90:grade A
elif score 80:grade B
elif score 70:grade C
elif score 60:grade D
else:grade E
print(对应的等级是:, grade)例子3输入三条边长如果能构成三角形就计算周长和面积。 判断输入的边长能否构成三角形如果能则计算出三角形的周长和面积a float(input(a ))
b float(input(b ))
c float(input(c ))
if a b c and a c b and b c a:peri a b cprint(f周长: {peri})half peri / 2area (half * (half - a) * (half - b) * (half - c)) ** 0.5print(f面积: {area})
else:print(不能构成三角形)说明 上面通过边长计算三角形面积的公式叫做海伦公式。 二、循环结构
应用场景
我们在写程序的时候一定会遇到需要重复执行某条指令或某些指令的场景。例如用程序控制机器人踢足球如果机器人持球而且还没有进入射门范围那么我们就要一直发出让机器人向球门方向移动的指令。在这个场景中让机器人向球门方向移动就是一个需要重复的动作当然这里还会用到上一课讲的分支结构来判断机器人是否持球以及是否进入射门范围。再举一个简单的例子如果要实现每隔1秒中在屏幕上打印一次“hello, world”并持续打印一个小时我们肯定不能够直接把print(hello, world)这句代码写3600遍这里我们需要构造循环结构。
所谓循环结构就是程序中控制某条或某些指令重复执行的结构。在Python中构造循环结构有两种做法一种是for-in循环另一种是while循环。
for-in循环
如果明确的知道循环执行的次数我们推荐使用for-in循环例如输出100行的”hello, world“。 被for-in循环控制的语句块也是通过缩进的方式来构造的这一点跟分支结构完全相同大家看看下面的代码就明白了。 用for循环实现1~100求和total 0
for x in range(1, 101):total x
print(total)需要说明的是上面代码中的range(1, 101)可以用来构造一个从1到100的范围当我们把这样一个范围放到for-in循环中就可以通过前面的循环变量x依次取出从1到100的整数。当然range的用法非常灵活下面给出了一个例子
range(101)可以用来产生0到100范围的整数需要注意的是取不到101。range(1, 101)可以用来产生1到100范围的整数相当于前面是闭区间后面是开区间。range(1, 101, 2)可以用来产生1到100的奇数其中2是步长即每次递增的值。range(100, 0, -2)可以用来产生100到1的偶数其中-2是步长即每次递减的值。
知道了这一点我们可以用下面的代码来实现1~100之间的偶数求和。 用for循环实现1~100之间的偶数求和total 0
for x in range(2, 101, 2):total x
print(total)while循环
如果要构造不知道具体循环次数的循环结构我们推荐使用while循环。while循环通过一个能够产生bool值的表达式来控制循环当表达式的值为True时则继续循环当表达式的值为False时则结束循环。
下面我们通过一个“猜数字”的小游戏来看看如何使用while循环。猜数字游戏的规则是计算机出一个1到100之间的随机数玩家输入自己猜的数字计算机给出对应的提示信息大一点、小一点或猜对了如果玩家猜中了数字计算机提示用户一共猜了多少次游戏结束否则游戏继续。 猜数字游戏import random# 产生一个1-100范围的随机数
answer random.randint(1, 100)
counter 0
while True:counter 1number int(input(请输入: ))if number answer:print(大一点)elif number answer:print(小一点)else:print(恭喜你猜对了!)break
# 当退出while循环的时候显示用户一共猜了多少次
print(f你总共猜了{counter}次)break和continue
上面的代码中使用while True构造了一个条件恒成立的循环也就意味着如果不做特殊处理循环是不会结束的这也就是常说的“死循环”。为了在用户猜中数字时能够退出循环结构我们使用了break关键字它的作用是提前结束循环。需要注意的是break只能终止它所在的那个循环这一点在使用嵌套循环结构时需要引起注意下面的例子我们会讲到什么是嵌套的循环结构。除了break之外还有另一个关键字是continue它可以用来放弃本次循环后续的代码直接让循环进入下一轮。
嵌套的循环结构
和分支结构一样循环结构也是可以嵌套的也就是说在循环中还可以构造循环结构。下面的例子演示了如何通过嵌套的循环来输出一个乘法口诀表九九表。 打印乘法口诀表for i in range(1, 10):for j in range(1, i 1):print(f{i}*{j}{i * j}, end\t)print()很显然在上面的代码中外层循环用来控制一共会产生9行的输出而内层循环用来控制每一行会输出多少列。内层循环中的输出就是九九表一行中的所有列所以在内层循环完成时有一个print()来实现换行输出的效果。
循环的例子
例子1输入一个正整数判断它是不是素数。 提示素数指的是只能被1和自身整除的大于1的整数。 输入一个正整数判断它是不是素数num int(input(请输入一个正整数: ))
end int(num ** 0.5)
is_prime True
for x in range(2, end 1):if num % x 0:is_prime Falsebreak
if is_prime and num ! 1:print(f{num}是素数)
else:print(f{num}不是素数)例子2输入两个正整数计算它们的最大公约数和最小公倍数。 提示两个数的最大公约数是两个数的公共因子中最大的那个数两个数的最小公倍数则是能够同时被两个数整除的最小的那个数。 输入两个正整数计算它们的最大公约数和最小公倍数
x int(input(x ))
y int(input(y ))
for factor in range(x, 0, -1):if x % factor 0 and y % factor 0:print(f{x}和{y}的最大公约数是{factor})print(f{x}和{y}的最小公倍数是{x * y // factor})break如果知道循环的次数我们通常使用for循环如果循环次数不能确定可以用while循环。在循环中还可以使用break来提前结束循环。
三、分支和循环结构的应用
分支和循环结构的重要性不言而喻它是构造程序逻辑的基础对于初学者来说也是比较困难的部分。大部分初学者在学习了分支和循环结构后都能理解它们的用途和用法但是遇到实际问题的时候又无法下手。
经典小案例
例子1寻找水仙花数。 说明水仙花数也被称为超完全数字不变数、自恋数、自幂数、阿姆斯特朗数它是一个3位数该数字每个位上数字的立方之和正好等于它本身。 这个题目的关键是将一个三位数拆分为个位、十位、百位这一点利用Python中的//整除和%求模运算符其实很容易做到代码如下所示。 找出所有水仙花数for num in range(100, 1000):low num % 10mid num // 10 % 10high num // 100if num low ** 3 mid ** 3 high ** 3:print(num)上面利用//和%拆分一个数的小技巧在写代码的时候还是很常用的。我们要将一个不知道有多少位的正整数进行反转例如将12345变成54321也可以利用这两个运算来实现代码如下所示。 正整数的反转num int(input(num ))
reversed_num 0
while num 0:reversed_num reversed_num * 10 num % 10num // 10
print(reversed_num)例子2百钱百鸡问题。 说明百钱百鸡是我国古代数学家张丘建在《算经》一书中提出的数学问题鸡翁一值钱五鸡母一值钱三鸡雏三值钱一。百钱买百鸡问鸡翁、鸡母、鸡雏各几何翻译成现代文是公鸡5元一只母鸡3元一只小鸡1元三只用100块钱买一百只鸡问公鸡、母鸡、小鸡各有多少只 《百钱百鸡》问题# 假设公鸡的数量为xx的取值范围是0到20
for x in range(0, 21):# 假设母鸡的数量为yy的取值范围是0到33for y in range(0, 34):z 100 - x - yif 5 * x 3 * y z // 3 100 and z % 3 0:print(f公鸡: {x}只, 母鸡: {y}只, 小鸡: {z}只)上面使用的方法叫做穷举法也称为暴力搜索法这种方法通过一项一项的列举备选解决方案中所有可能的候选项并检查每个候选项是否符合问题的描述最终得到问题的解。这种方法看起来比较笨拙但对于运算能力非常强大的计算机来说通常都是一个可行的甚至是不错的选择只要问题的解存在就能够找到它。
例子3CRAPS赌博游戏。 说明CRAPS又称花旗骰是美国拉斯维加斯非常受欢迎的一种的桌上赌博游戏。该游戏使用两粒骰子玩家通过摇两粒骰子获得点数进行游戏。简化后的规则是玩家第一次摇骰子如果摇出了7点或11点玩家胜玩家第一次如果摇出2点、3点或12点庄家胜玩家如果摇出其他点数则玩家继续摇骰子如果玩家摇出了7点庄家胜如果玩家摇出了第一次摇的点数玩家胜其他点数玩家继续摇骰子直到分出胜负。 Craps赌博游戏
我们设定游戏开始时玩家有1000元的赌注
游戏结束的条件是玩家破产输光所有的赌注from random import randintmoney 1000
while money 0:print(f你的总资产为: {money}元)go_on False# 下注金额必须大于0小于等于玩家总资产while True:debt int(input(请下注: ))if 0 debt money:break# 第一次摇色子# 用1到6均匀分布的随机数模拟摇色子得到的点数first randint(1, 6) randint(1, 6)print(f\n玩家摇出了{first}点)if first 7 or first 11:print(玩家胜!\n)money debtelif first 2 or first 3 or first 12:print(庄家胜!\n)money - debtelse:go_on True# 第一次摇色子没有分出胜负游戏继续while go_on:go_on Falsecurrent randint(1, 6) randint(1, 6)print(f玩家摇出了{current}点)if current 7:print(庄家胜!\n)money - debtelif current first:print(玩家胜!\n)money debtelse:go_on True
print(你破产了, 游戏结束!)例子4斐波那契数列。 说明斐波那契数列Fibonacci sequence通常也被称作黄金分割数列是意大利数学家莱昂纳多·斐波那契Leonardoda Fibonacci在《计算之书》中研究在理想假设条件下兔子成长率问题而引入的数列因此这个数列也常被戏称为“兔子数列”。斐波那契数列的特点是数列的前两个数都是1从第三个数开始每个数都是它前面两个数的和按照这个规律斐波那契数列的前10个数是1, 1, 2, 3, 5, 8, 13, 21, 34, 55。斐波那契数列在现代物理、准晶体结构、化学等领域都有直接的应用。 输出斐波那契数列前20个数
a, b 0, 1
for _ in range(20):a, b b, a bprint(a)例子5打印100以内的素数。 说明素数指的是只能被1和自身整除的正整数不包括1。 输出100以内的素数for num in range(2, 100):# 假设num是素数is_prime True# 在2到num-1之间找num的因子for factor in range(2, num):# 如果找到了num的因子num就不是素数if num % factor 0:is_prime Falsebreak# 如果布尔值为True在num是素数if is_prime:print(num)文末免费送书Python从入门到精通
《Python从入门到精通微课精编版》使用通俗易懂的语言、丰富的案例详细介绍了Python语言的编程知识和应用技巧。全书共24章内容包括Python开发环境、变量和数据类型、表达式、程序结构、序列、字典和集合、字符串、正则表达式、函数、类、模块、异常处理和程序调试、进程和线程、文件操作、数据库操作、图形界面编程、网络编程、Web编程、网络爬虫、数据处理等还详细介绍了多个综合实战项目。其中第24章为扩展项目在线开发是一章纯线上内容。全书结构完整知识点与示例相结合并配有案例实战可操作性强示例源代码大都给出详细注释读者可轻松学习快速上手。本书采用O2O教学模式线下与线上协同以纸质内容为基础同时拓展更多超值的线上内容读者使用手机微信扫一扫即可快速阅读拓展知识开阔视野获取超额实战体验。 抽奖方式 评论区随机抽取3位小伙伴免费送出 参与方式 关注博主、点赞、收藏、评论区评论“人生苦短我用Python”切记要点赞收藏否则抽奖无效每个人最多评论三次 活动截止时间 2024-3-04 20:00:00 当当 购买链接传送门 京东 购买链接传送门 名单公布方式 下期活动开始将在评论区和私信一并公布中奖者请三天内提供信息 前言 随着人工智能、大数据处理和区块链等新技术的流行Python语言也开始受人关注并不断被普及。Python语言自诞生至今经历了近30年时间最近十年发展比较迅猛。一方面是因为Python语言的优点吸引了大量编程人员另一方面是因为当下科学计算、人工智能需求与Python语言特色相契合。
Python语言简单易学具有开放特性并拥有成熟而丰富的第三方库因此适用于新兴技术领域的开发。Python能够很轻松地把用其他语言设计的各种模块尤其是C/C连接在一起这大大拓展了Python的应用范畴。现在很多学校都开设了Python编程课程甚至连小学生都开始学习Python语言。本书从初学者的角度出发循序渐进地讲解使用Python语言进行编程和应用开发的各项技术。
本书内容
本书分为四大部分共24章具体结构划分如下。
第1部分语法基础第17章。内容包括Python开发环境、Python开发工具、变量和数据类型、运算符和表达式、语句和程序结构、序列、列表、元组、字典与集合、字符串等知识。使读者能快速掌握Python语言的基本语法为以后编程奠定坚实的基础。
第2部分开发进阶第817章。内容包括正则表达式、函数、类及面向对象程序设计、模块、异常处理和程序调试、进程和线程、文件操作、数据库操作、图形界面编程、网络编程等。学习完该部分读者可以掌握Python核心开发技术。
第3部分项目应用第1823章。面向Web开发、网络爬虫、大数据开发3个热门应用方向展开讲解这3个应用方向的核心技术并分类提供了这3个方向的常用开发项目。学习完该部分读者能够开发简单的应用程序解决实际问题。
第4部分扩展项目在线开发第24章。该部分是纯线上内容涉及界面设计、人工智能、游戏开发、自动化运维和API应用通过5大类、29个热门的完整项目引导读者学习如何使用Python进行项目开发带领读者亲身体验使用Python开发实际应用程序的全过程。
本书特色
400万读者体验畅销丛书新增精品14年开发教学经验一线讲师半生心血。
内容全面本书由浅入深循序渐进地讲解了Python语言的核心基础知识并且适度地与当今热门的Python开发方向对接知识点布局合理、结构匀称全书内容完整、前面、详尽适合相关院校选作教学参考用书也适合相关培训机构用作教材。
体验超好配套同步视频讲解微信扫一扫随时随地看视频配套在线支持知识拓展专项练习更多案例同样微信扫一扫即可学习。适应移动互联网时代的学习习惯全面提升读者体验。
语言简练本书语言通俗易懂知识讲解简洁明了重难点突出避免专业式说教适合初学者自学阅读。
入门容易本书遵循学习规律入门和实战相结合。采用“基础知识中小案例实战案例”的编写模式内容由浅入深、循序渐进从入门中学习实战应用从实战应用中激发学习兴趣。
案例超多通过例子学习是最好的学习方式本书通过一个知识点、一个例子、一个结果、一段评析的模式透彻详尽地讲述了Python开发的各类主流应用知识并且几乎每一章都配有综合应用的实战案例。实例、案例丰富详尽跟着大量案例去学习边学边做从做中学学习可以更深入、更高效。
栏目贴心本书根据需要在各章使用了很多“注意”“提示”等小栏目让读者可以在学习过程中更轻松地理解相关知识点及概念扫除盲点并轻松地掌握个别技术的应用技巧。
资源丰富本书配套Python学习人员尤其是零基础学员最需要的13大资源库包括计算机基础知识库、Python基础工具库、正则表达式工具库、数据库编程工具库、网络编程工具库、前端开发工具库、Web开发工具库、网络爬虫工具库、界面编程工具库、大数据处理工具库、人工智能编程工具库、游戏编程工具库、Python面试题库。这些资源不仅学习中需要工作中更有用。另外本书还配有307集同步讲解视频和示例源码库。
在线支持顺应移动互联网时代知识获取途径变化的潮流本书每一章均配有在线支持提供与本章知识相关的知识拓展、专项练习、更多案例等优质在线学习资源并且新知识、新题目、新案例不断更新中。这样一来在有限的纸质图书中承载了更丰富的学习内容让读者真实体验到以一倍的价格购买两倍的学习内容更便捷更超值。