Day04-循环和列表

循环和列表

一、循环(***)

1.1 概念

广义:一个周期现象或者重复出现的情况,这种状态被称为循环

狭义:在满足条件的情况下,反复执行某一段代码,在编程语言中出现的这种现象被称为循环。被反复执行的这段代码被称为循环体

当反复执行某段代码时,需要在合适的时机将循环停止下来,否则会产生死循环

Python中提供的循环语句:while语句,for-in语句

1.2 使用

1.2.1 while语法

while 表达式:
   循环体

工作原理:遇到while语句时,首先计算表达式的值,如果表达式的值为假,则跳过整个while语句,继续执行下面的代码;如果表达式的值为真,则执行循环体

1.2.2 while-else

while 表达式:
    循环体
else:
   【else语句块】

说明:当while语句执行完成之后,执行【else语句块】,如果用break跳出循环则不执行else

1.2.3死循环

在循环语句中,表达式永远为真的循环

while True:
    #循环体

while 1:
    #循环体

1.2.4 while语句的嵌套

while 条件1:     #外层循环
     【语句块A】
      while 条件2:   #内存循环
            【语句B】

执行流程:首先判断外层循环的条件1,如果为真,则执行循环体中的【语句块A】,执行内层循环,判断条件2是否成立,如果成立,执行内层循环的【语句块B】,执行完内层循环后,重新判断外层循环条件....

  • 特点:外层循环走一步,内层循环执行一遍

  • 外层循环和内层循环的循环变量必须不同

演示:

打印九九乘法表

1.3. break和continue、exit()

continue 语句用来跳过当前循环的剩余语句,然后重新判断循环条件,开启下一轮循环。continue只能出现在while和for循环中

break用于结束当前循环。只对当前这一重循环起作用。break只能出现在循环中

exit()结束程序

 

二、列表

在python中,有这样一些类型,它们的成员是有序排列的,并且可以通过下标访问成员,这些类型称之为序列,包括:列表、range、元组和字符串;其中列表的成员可修改,属于可变序列,字符串和元组,成员不可修改,属于不可变序列。序列有共同操作:

成员关系运算(in,not in)

连接操作(+)

重复操作(*)

切片操作([::])

1 概述

引出:存储一个数据可以采用变量

问题:需要同时存储多个数据,该怎么做?

#需求:有5个人的年龄,求平均年龄
age1 = 10
age2 = 32
age3 = 43
age4 = 18
age5 = 90
average = (age1 + age2 + age3 + age4 + age5) / 5

解决:容器【Python提供了一种数据结构list,可以同时存储多个数据】

本质:一种有序的集合

2 创建列表

语法:列表名 = [列表选项一,列表选项二,列表选项三.....]

说明:使用[]表示列表,列表名其实就是标识符

将列表中的列表选项被称为元素

列表中的元素分别被编了号,这些编号被称为索引【下标,角标】

列表索引:

从左向右开始编号:0,1,2....n-1

从右向左编号: -1,-2......

-7 -6 -5 -4 -3 -2 -1

[10 , 20 , 30 , 40, 50 ,90, 80]

0 1 2 3 4 5 6

list1 = []  #创建一个空列表
list2 = [10,9,True,'张三']
list3 = list()  #创建一个空列表
list4 = list('hello world)  # ['h', 'e', 'l', 'l', 'o', ' ', 'w', 'o', 'r', 'l', 'd']

3.列表中元素的访问

列表中元素不能整体访问,只能单个存取

3.1取值

语法:列表名[索引]

list1 = [1,2,4,3,8]
num = list1[2]
print(num)

#下标越界,引发IndexError, 需要自己确定不要越界
print(list1[5])

3.2 修改

语法:列表名[索引] = 新的元素值

list1[2] = 888
print(list1)

3.3 遍历

列表的遍历就是访问列表的每一个元素,可以使用while循环和for-in循环。经常使用for-in循环遍历列表

for-in语法:

for 变量名 in 列表:
    语句A
else:
     语句B

说明:主要用于遍历序列【遍历:依次访问序列中的每一个元素,获取元素值】

工作原理:按照顺序获取列表中的每个元素,赋值给变量,再执行语句A,以此类推,直到列表中的元素全部获取为止,循环终止后执行else语句块。

不要在for-in循环中添加或删除元素

#只能获取元素,不能得到元素的下标
for value in list1:
    print(value,end=' ')

#index表示下标,num表示元素值
#enumerate将列表变成一个索引序列,同时包含下标和数据
for index,num in enumerate(list1):
   print(index,num)

 

#二维列表的遍历,循环嵌套
l1 = [[1,2],[3,4],[5,6]]
for elem in l1:
   for value in elem:
       print(value, end=' ')
   print('')

 

4.序列的通用操作

#1.列表组合  将两个列表拼接为一个列表
#直接使用加号
list1 = [43,65,76,6]
list2 = [45,77,90,11,2,4,66]
print(list1 + list2)  #[43,65,76,6,45,77,90,11,2,4,66]  产生一个新列表

#2.列表重复
#直接使用乘号 列表内容重复指定遍数,产生一个新列表
print(list1 * 2)  # [43,65,76,6,43,65,76,6]

#3.成员操作
#成员运算符:in      not in
#运算的结果为布尔值
list3 = ["hello",False,189,"good"]
print(189 in list3) #True
print(180 not in list3)  #True

#4.列表的截取【分片,切片】
#语法:列表名[开始下标:结束下标:步长],表示按指定步长获取从开始下标到结束下标之间的元素,
#     结果为一个新的列表
#注意:包头不包尾【前闭后开区间】   [开始下标,结束下标)
#步长:默认是1,正数表示从左向右取,负数表示从右向左取
list1 = [10,20,30,40,50,60]
print(list1[0:3])   #[10,20,30]
print(list1[:3])    #[10,20,30]
print(list1[:])     #[10,20,30,40,50,60] 从头取到尾
print(list1[::2])     # [10,30,50] 隔一个取一个
print(list1[3::-1])  #[40, 30, 20, 10]  从右向左取
print(list1[-1:-3:-1]) #[60, 50] 从右向左取
print(list1[2:]) #[30, 40, 50, 60] 从下标为2的元素开始取到末尾
print(list1[-3::-1])#[40, 30, 20, 10] 从右向左取到第一个元素

#5.列表长度
print(len(list1))

#6.列表最大值和最小值、求和
print(max(list1))
print(min(list1))
print(sum(list1))

5.列表的操作

l1 = [10,20,30]

5.1 增加元素

#1. list.append(obj) 在列表末尾添加新的元素
l1.append(40) #可以是普通元素
#l1[len(l1):len(l1)] = [40] #等价于l1.append(40)
print(l1)     # [10,20,30,40]
l1.append([50,60]) #也可以是其它列表、元组、字典、集合等对象
print(l1)     # [10,20,30,40,[50, 60]]

#2. list.extend(obj)  在列表的末尾一次性追加另一个列表中的元素
#obj不能是单个数值,可以是列表等可迭代对象
l1.extend([70,80])  #只是将元素添加到l1末尾
print(l1)

#3. list.insert(i,obj) 在指定下标i的位置插入一个新元素,原来的元素后移,不会覆盖
l1.insert(1,-20)
print(l1)    #[10, -20, 20, 30, 70, 80]
l1.insert(0,[1,2,3])
print(l1)   #[[1, 2, 3], 10, -20, 20, 30, 70, 80]

5.2 删除元素

#1. list.pop(i) 删除指定下标的元素,如果下标越界,会出现IndexError
value = l1.pop()   #删除最后一个元素,并返回该元素的值
print(value)
print(l1)
l1.pop(0)   #删除下标为0的元素
print(l1)

#2. list.remove(x) 删除列表中第一个值等于x的元素,删除的时候是从左向右找到第一个等于x的元素删除
l1.remove(-20)
print(l1)
# l1.remove(100) 如果列表中没有该值,会引起错误:ValueError

#3.按下标删除
del l1[0]
del l1[0:2]  #删除第一个和第二个元素

#3 list.clear()  清空列表
l1.clear()
print(l1)  #[]

5.3 查找元素

#1. list.index(x,start,end) 在[start  end)范围内查找第一个等于x的元素的下标
#参数说明: x 要查找的元素; start,开始下标;end 结束下标,不包含结束下标
#返回值:如果有值等于x的元素,返回其下标,如果不存在值等于x的元素,会引发ValueError
print(l1.index(10))    #1
print(l1.index(330,2,5))  #4

#2 list.count(x) 查找列表中x出现的次数,如果没有x,返回0
print(l1.count(30))   #2
print(l1.count(99))   #0 不存在99

5.4 列表反转

#把列表元素逆序排列
l1.reverse()
print(l1)

5.5 列表排序

#1. list.sort(key=None,reverse=None) 列表方法,实现列表就地排序,不产生新列表
#参数:key参数指明用哪个函数进行排序,默认值是None,用<进行比较  可选参数
     reserse:布尔值,默认值是None,也就是假,从小到大排序,如果设置为True,则从大到小排序,可选参数
l1 = [90,30,70,20,10,60]
print(l1)  # [90, 30, 70, 20, 10, 60]
l1.sort()
print(l1)  # [10, 20, 30, 60, 70, 90]

6 二维列表

就是列表的元素还是列表

list1 = [[1,2,3],[4,5,6]]
#获取元素
print(list1[0][0],list1[0][1],list1[0][2]) #1  2  3

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

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

相关文章

热血街头Java,下载_我爱法语 V3.01 多国语言版_6z6z下载站

我爱法语是一款功能强大的法语电子词典工具。融合了法汉&#xff0c;汉法&#xff0c;法法&#xff0c;英法&#xff0c;法英&#xff0c;英汉&#xff0c;法意等各类词库。该工具使用灵活&#xff0c;操作简单&#xff0c;充分吸收了法汉、汉法、法法、英法、法英、英汉、法意…

【demo练习二】:WPF依赖属性的练习

2016-10-11 依赖属性demo小样&#xff1a; 要求&#xff1a;在窗口中点击按钮&#xff0c;利用设置“依赖属性”把Label和TextBox控件里的属性值进行改变。 MainWindow.xaml代码&#xff1a; <Window x:Class"依赖属性1.MainWindow" xmlns"http://schemas.m…

BZOJ 1087 [SCOI2005]互不侵犯King ——状压DP

【题目分析】 沉迷水题&#xff0c;吃枣药丸。 【代码】 #include <cstdio> #include <cstring> #include <iostream> #include <algorithm> using namespace std; #define F(i,j,k) for (int ij;i<k;i) #define ll long long int cot[512],c1[512]…

Django中object.all

前言 先抛出一个问题。银行就相当于一个数据库&#xff0c;你去银行取钱存钱办卡销卡&#xff0c;是你告诉银行柜员方便还是你自己去操作电脑办卡取卡方便&#xff1f;&#xff08;你还不一定会&#xff0c;假设自动存款机还没发明&#xff09;&#xff0c;object在数据库中就…

java中为什么设计包装类,Java 中为什么要设计包装类

最近文章更新频率慢了&#xff0c;因为最近在准备暑期实习&#xff0c;之前寻思着一边复习一边写文章&#xff0c;两全其美。后来发现一篇读起来比较舒服的文章写出来加上配图得花上四五个小时甚至更多&#xff0c;但这个知识点我可能半个小时就能复习完了&#xff0c;春招在即…

bfc

BFC 已经是一个耳听熟闻的词语了&#xff0c;网上有许多关于 BFC 的文章&#xff0c;介绍了如何触发 BFC 以及 BFC 的一些用处&#xff08;如清浮动&#xff0c;防止 margin 重叠等&#xff09;。虽然我知道如何利用 BFC 解决这些问题&#xff0c;但当别人问我 BFC 是什么&…

Python语法异常 Exception

常见异常&#xff1a;Exception 所有异常的基类AttributeError 特性应用或赋值失败时引发IOError 试图打开不存在的文件时引发IndexError 在使用序列中不存在的索引时引发KeyError …

Python的Django框架中forms表单类的使用方法详解

Form Form的验证思路 前端&#xff1a;form表单 后台&#xff1a;创建form类&#xff0c;当请求到来时&#xff0c;先匹配&#xff0c;匹配出正确和错误信息。 Django的Form验证实例&#xff1a; 创建project&#xff0c;进行基础配置文件配置 settings.py settings.py之…

java读取gpx文件,从Leaflet导出GPX文件

我想要做的是让用户通过选择Leaflet中的一些GeoJson功能来创建GPX文件 . 我这样做的方法是创建一个新的GeoJson图层来存储所选的特征&#xff0c;然后用一个名为togpx(https://github.com/tyrasd/togpx)的插件将其转换为gpx . 现在我有一个gpx文件&#xff0c;但我没有t know h…

Mono Compatibility

The easiest way to describe what Mono currently supports is:Everything in .NET 4.5 except WPF, WWF, and with limited WCF and limited ASP.NET 4.5 async stack. System.Web and WCF are candidates for ‘almost immediate’ porting from the .NET reference source …

Python的Django框架中forms表单类的使用方法详解2

用户表单是Web端的一项基本功能,大而全的Django框架中自然带有现成的基础form对象,本文就Python的Django框架中forms表单类的使用方法详解。 Form表单的功能 自动生成HTML表单元素检查表单数据的合法性如果验证错误&#xff0c;重新显示表单&#xff08;数据不会重置&#xf…

生动形象的理解API是如何工作的!

API(Application Programming Interface,应用程序编程接口) 简单来说&#xff0c;就是其他人开发出来一块程序&#xff0c;你想用&#xff0c;他会告诉你调用哪个函数&#xff0c;给这个函数传什么参数&#xff0c;然后又会返回给你一个什么样的结果&#xff0c;你不需要知道他…

ann matlab,人工神经网络ann及其matlab仿真.ppt

人工神经网络ann及其matlab仿真人工神经网络 的研究方法及应用刘 长 安2004. 12. 31 引 言 利用机器模仿人类的智能是长期以来人们认识自然、改造自然和认识自身的理想。 研究ANN目的&#xff1a; (1)探索和模拟人的感觉、思维和行为的规律&#xff0c;设计具有人类智能的计算机…

字符串与树的结合

https://leetcode.com/problems/scramble-string/?tabDescription 虽然题目不常见&#xff0c;但是里面关于字符串调转和递归的思路&#xff0c;还是很有代表性的。 https://discuss.leetcode.com/topic/14337/share-my-4ms-c-recursive-solution/2 这个解法也把里面关于递归的…

ubuntu 安装过程所需软件

ubuntu 开发过程好用的软件 Remarkable 一个用于书写文档的好工具&#xff0c;包括方便书写数学公式。安装过程 点击上面“remarkable”下载.deb文件&#xff0c;然后双击会跳转到ubuntun的软件安装中心&#xff0c;点击install进行安装。 sublime text3 配置 自定义快捷键Pref…

Day05-循环和列表字符串、元组和字典

一、字符串 字符串就是由若干个不同的unicode字符组成的不可变序列 1 .字符串创建 #单引号字符串 str1 天要下雨&#xff0c;娘要嫁人&#xff0c;由他去吧 str2 str() #空串 str3 str([10,20,30]) ​ #双引号字符串 str2 "天要下雨&#xff0c;娘要嫁人&#xff…

@查看MySQL版本的方法

1.在终端下:mysql -V. [rootlocalhost bin]# mysql -V; mysql Ver 14.14 Distrib 5.6.21, for Linux (x86_64) using EditLine wrapper [rootlocalhost bin]# mysql -v; ERROR 1045 (28000): Access denied for user rootlocalhost (using password: NO) 注意&#xff0c;这…

echarts 柱状图 ,颜色和显示设置

最近在使用echart开发图标&#xff0c;api里面虽然有些设置&#xff0c;但是如果想让柱状图每个柱的颜色都不相同&#xff0c;简单的通过color设置是没有作用的&#xff0c;这里&#xff0c;就要用到其他的方式了 下面只是列举下我认为比较常用的&#xff0c;其他的比较简单&am…

Pycharm 专业版 导入系统pip安装的包

Pycharm 专业版 导入系统pip安装的包 在setting 中找到project interpeter ,点击设置图标&#xff0c;点击Add&#xff0c;得到如图所示选择 System Interpreter即可,这样 用pip安装的包都加再进来了

nodejs express

2019独角兽企业重金招聘Python工程师标准>>> 创建express服务器 //app.js文件 var express require(express); var app express(); //指定更目录显示的内容 app.get(/, function(req, res){ res.send(Hello World); }); //指定监听端口 var server app.listen(…