python语言三大基本控制结构_Python基础(4) 控制结构

三种控制流语句:if、for、while,Python用缩进表明成块的代码,以四个空格表示隶属关系,所以语句不能随意缩进。

1 条件语句

(1)简单的if语句

a = 10

if a > 0: #末尾带“:”

print('这是一个整数') #四个空格缩进表示隶属关系

(2)if...else:二选一,适用于“非黑即白”的判断,只有一个输出

person = [1, 0] #0-男性 1-女性

if person[0] ==0:print('这是男性!')else:print('这是女性!')

(3)if...elif...else:多选一,多个条件相互独立,只有一个输出

a, b = 10, 5

if a < b: #首次判断不满足,跳过

print('a 小于 b')elif a == b: #再次判断不满足,跳过

print('a 等于 b')else: #因比较只有:大于、等于、小于三种情况,排除两种后只剩大于,直接输出

print('a 大于 b') #a 大于 b

(4)if的嵌套使用:多用于数值/多条件判断,可有多个输出

a = input('a:')

b= input('b:')

c= input('c:')if a >b:print(a, '大于', b)if a >c:print(a, '大于', c)else:print(a, '小于', c)

2 循环语句

在符合条件的情况下,重复执行一段代码。

2.1 while循环

(1)简单while循环:单线重复

a =0while a < 100:

a+= 1 #改变循环条件

print(a)

(2)嵌套while循环:多线重复,常用于行列输出

i =0while i < 5: #纵向打印

m =0while m < i: #横向打印

print('*', end=' ')

m+= 1 #改变循环条件

i += 1 #改变循环条件

print( )#*#* *#* * *#* * * *

(3)while...else...类似与if...else...实际很少用,了解即可

2.2 for循环

可以循环遍历任何序列项目,如列表或字符串(字典只能遍历keys),不需要判断条件,遍历完序列中的项目即结束

a = [4, 3, 8, 9, 6, 1]for i in a: #打印列表元素

print(i)

注意与while循环的区别

i =0while i < len(a): #必须定义并改变循环条件

print(a[i]) #通过索引下标输出

i += 1

因为迭代(循环)某范围的数字非常常见,所以有个内建的范围函数range( )

for i in range(10):print(i)

轻量级循环(列表生成式):通过简单语句实现

print([x*x for x in range(10)]) #[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]

2.3 相关函数

(1)enumerater( ):每次循环中同时得到下标和元素

animal = ['Duck', 'Cat', 'Chicken', 'Dog', 'Bird']for index, num inenumerate(animal):print(index)print(num)#0#Duck#1#Cat#2#Chicken#3#Dog#4#Bird

(2)zip( ):实现每次循环时从多个等长序列中同时取出一个元素

ta = [1, 2, 3]

tb= [7, 8, 9]

tc= ['a', 'b', 'c']for a, b, c inzip(ta, tb, tc):print(a, b, c)#1 7 a#2 8 b#3 9 c

2.4 中断循环

(1)break:退出循环

(2)continue:退出本次循环,直至不满足遍历条件终止循环

name = input('请输入犯人名字:')

person= ['Jack', 'Tom', 'John', 'Susan']for se inperson:if se ==name:print('嫌疑人是:%s' %se)break #退出整个循环,不会输出“end”

#continue

print(se)'''break:运行至找到犯人为止,退出整个循环

请输入犯人名字:Tom

嫌疑人是:Tom

Tom

continue:找到后退出当前循环,从下次继续执行整个循环直至不满足循环条件

请输入犯人名字:Tom

嫌疑人是:Tom

Susan'''

3 深拷贝与浅拷贝

3.1 术语解释

(1)变量:是一个系统表的元素,拥有指向对象的连接空间

(2)对象:被分配的一块内存,存储其所代表的值

(3)引用:是自动形成的从变量到对象的指针

注意:类型(int类型,long类型(Python3已去除long类型,只剩下int类型的数据))属于对象,不是变量

3.2 拷贝方法

在Python中对象的赋值其实就是对象的引用。当创建一个对象,把它赋值给另一个变量的时候,Python并没有拷贝这个对象,只是拷贝了这个对象的引用而已。

3.2.1 直接赋值

默认浅拷贝传递对象的引用而已,原始列表改变,被赋值的b也会做相同的改变。

alist = [1, 2, 3, ['a', 'b']]

b=alistprint(b) #[1, 2, 3, ['a', 'b']]

alist.append(5)print(alist) #[1, 2, 3, ['a', 'b'], 5]

print(b) #[1, 2, 3, ['a', 'b'], 5]

3.2.2 浅拷贝 copy.copy( )

拷贝了最外围的对象本身,内部的元素都只是拷贝了一个引用而已。也就是,把对象复制一遍,但是该对象中引用的其他对象我不复制。

importcopy

c=copy.copy(alist)print(c) #[1, 2, 3, ['a', 'b']]

alist.append(5)print(alist) #[1, 2, 3, ['a', 'b'], 5]

print(c) #[1, 2, 3, ['a', 'b'], 5]

3.2.3 深拷贝 copy.deepcopy( )

外围和内部元素都进行了拷贝对象本身,而不是引用。也就是,把对象复制一遍,并且该对象中引用的其他对象我也复制。

d =copy.deepcopy(alist)print(d) #[1, 2, 3, ['a', 'b']]

alist.append(5)print(alist) #[1, 2, 3, ['a', 'b'], 5]

print(d) #[1, 2, 3, ['a', 'b']]

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/556510.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Spring-bean的循环依赖以及解决方式___Spring源码初探--Bean的初始化-循环依赖的解决

本文主要是分析Spring bean的循环依赖&#xff0c;以及Spring的解决方式。 通过这种解决方式&#xff0c;我们可以应用在我们实际开发项目中。 什么是循环依赖&#xff1f;怎么检测循环依赖Spring怎么解决循环依赖Spring对于循环依赖无法解决的场景Spring解决循环依赖的方式我们…

java+cache使用方法_java相关:springboot使用GuavaCache做简单缓存处理的方法

java相关&#xff1a;springboot使用GuavaCache做简单缓存处理的方法发布于 2020-3-29|复制链接摘记: 问题背景实际项目碰到一个上游服务商接口有10秒的查询限制(同个账号)。项目中有一个需求是要实时统计一些数据&#xff0c;一个应用下可能有多个相同的账号。由于服务商接口的…

python程序设计方法_Python程序设计现代方法

章Python概述001 1.1计算机与计算机语言002 1.1.1计算机的诞生与发展002 1.1.2计算机语言概述006 1.1.3翻译执行008 1.2Python语言概述009 1.2.1Python语言发展史009 1.2.2Python语言的特点011 1.2.3Python的应用领域012 1.2.4Python版本的区别012 1.3Python环境配置014 1.3.1安…

Spring中bean的作用域与生命周期

在Spring中&#xff0c;那些组成应用程序的主体及由Spring IoC容器所管理的对象&#xff0c;被称之为bean。简单地讲&#xff0c;bean就是由IoC容器初始化、装配及管理的对象&#xff0c;除此之外&#xff0c;bean就与应用程序中的其他对象没有什么区别了。而bean的定义以及bea…

pat乙级 1014 java_pat乙级1014 福尔摩斯的约会

大侦探福尔摩斯接到一张奇怪的字条&#xff1a;“我们约会吧&#xff01; 3485djDkxh4hhGE 2984akDfkkkkggEdsbs&hgsfdk d&Hyscvnm”。大侦探很快就明白了&#xff0c;字条上奇怪的乱码实际上就是约会的时间“星期四14:04”&#xff0c;因为前面两字符串中第1对相同的大…

python科学编程入门书_Python数据科学零基础一本通

领取成功 您已领取成功&#xff01; 您可以进入Android/iOS/Kindle平台的多看阅读客户端&#xff0c;刷新个人中心的已购列表&#xff0c;即可下载图书&#xff0c;享受精品阅读时光啦&#xff01; - | 回复不要太快哦~ 回复内容不能为空哦 回复已提交审核... 快登录帐号来一起…

python 整合excel_python EXcel表整合(自动办公)

收到任务&#xff0c;方便领导快速查看每个人的日程安排。比如每个工程师都有一个自己的表格记录自己的日程安排&#xff0c;领导查看每个人的日程安排需要一一打开所有工程师的日程安排表才能知道每个人的信息&#xff0c;而且非常不直观。 这里介绍下利用python解决实际办公问…

java poi 打开 保存_Java-Apache POI-在DB中读取和存储RTF内容

我们在Java应用程序中有一个新要求,即用户可以上传excel文件.excel文件中的一列将使用粗体,斜体,项目符号,彩色文本等格式.我们需要读取此excel文件并将这些值存储在Oracle DB表中.随后,我们还需要提取这些数据,并保留格式并下载到excel工作表中.我们计划将Apache-poi用于相同的…

Spring循环依赖的三种方式

引言&#xff1a;循环依赖就是N个类中循环嵌套引用&#xff0c;如果在日常开发中我们用new 对象的方式发生这种循环依赖的话程序会在运行时一直循环调用&#xff0c;直至内存溢出报错。下面说一下Spring是如果解决循环依赖的。 第一种&#xff1a;构造器参数循环依赖 Spring容…

python字典统计排序1_python-如何按字典顺序对Counter.mostCommon(n)的...

这里的问题是Counter dict是无序的,并且most_common不在乎键.为此,您需要对字典中的项目进行排序,然后提取最常见的3个项目. counter Counter(abcdef) most_common sorted(counter.items(), keylambda pair: (-pair[1], pair[0])) 这将首先对-pair [1](计数)进行排序.由于出现…

Java最后_Java最后一次总结

前言&#xff1a;最开始我学习了java如何简单编写一小段代码&#xff0c;发现java代码和C语言还是有很多相似的地方&#xff0c;到类与对象之后等等的很多的内容&#xff0c;我觉得还是有很大区别的&#xff0c;java对于c语言来说&#xff0c;显得更为高级及方便&#xff0c;让…

Spring 是如何解决循环依赖的?

1.由同事抛的一个问题开始 最近项目组的一个同事遇到了一个问题&#xff0c;问我的意见&#xff0c;一下子引起的我的兴趣&#xff0c;因为这个问题我也是第一次遇到。平时自认为对spring循环依赖问题还是比较了解的&#xff0c;直到遇到这个和后面的几个问题后&#xff0c;重…

python3自动化软件发布系统_基于python3做C/S端自动化测试可能用到的工具(不断更新中。。。。)...

选择一个合适的框架(库) (1)如果你的c/s端工具界面控件可以被捕获&#xff0c;则可以使用pyautoit,和pywinauto这2个库&#xff0c;附上界面元素捕获小工具(链接&#xff1a;https://pan.baidu.com/s/1_5--ZWsV-oS7r2ORwX7M7g 提取码&#xff1a;o4z5 ) (2)如果界面控件不可以…

java按钮触发另一个页面_前端跨页面通信,你知道哪些方法?

戳蓝字「前端技术优选」关注我们哦&#xff01; 引言在浏览器中&#xff0c;我们可以同时打开多个Tab页&#xff0c;每个Tab页可以粗略理解为一个“独立”的运行环境&#xff0c;即使是全局对象也不会在多个Tab间共享。然而有些时候&#xff0c;我们希望能在这些“独立”的Tab页…

【Java用法】java 8两个List集合取交集、并集、差集、去重并集

在业务的开发过程中会经常用到两个List集合相互取值的情况&#xff0c;于是记录在此&#xff0c;方便后续使用哦~~~ public class ListTest {public static void main(String[] args) {ArrayList<String> listA CollectionUtil.toList("a", "b", &…

java中的列表栈链表_Java数据结构(栈,队列,双链表)

(1)栈package ChapterOne;public class Stack {//栈数组long stackArr[];//栈的大小int maxSize;//栈的顶部int top;//初始化一个大小为size的栈public Stack(int size){maxSize size;stackArr new long[size];top -1;}//出栈操作public long pop(){return stackArr[top--];…

jsonp react 获取返回值_Django+React全栈开发:文章列表

React现在我们有了一个属于文章的API&#xff0c;可以添加、修改、删除、查看文章&#xff0c;但是对于我们的网站来说&#xff0c;还需要一个用户界面才行。现在开始探索一下ReactJS吧。经常听到有前端三大框架Angular、React、Vue的说法&#xff0c;不过React官网对自己的介绍…

24个经典的MySQL索引问题,你都遇到过哪些?

1、什么是索引&#xff1f; 索引是一种特殊的文件(InnoDB数据表上的索引是表空间的一个组成部分)&#xff0c;它们包含着对数据表里所有记录的引用指针。 索引是一种数据结构。数据库索引&#xff0c;是数据库管理系统中一个排序的数据结构&#xff0c;以协助快速查询、更新数…

java 3 4_Java-3/4_树.md at master · yrcDream/Java-3 · GitHub

树二叉树二叉树具有唯一根节点二叉树每个节点最多有两个孩子&#xff0c;最多有一个父亲二叉树具有天然递归结构二叉树不一定是 “满” 的&#xff1a;一个节点也是二叉树、空节点也是二叉树二叉搜索树(BST)BST 的基本功能public class BST> {private Node root;private int…

python模块导入_python模块导入

不同的执行方式&#xff1a; 从IDE中执行&#xff0c;python程序由IDE设置环境决定。 从系统中执行&#xff0c;python程序由环境变量中的系统变量path决定&#xff0c;从上往下选择。 模块导入顺序&#xff1a; 系统包优先级最高 > 同目录 > sys.path&#xff0c;之所以…