A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© Curry_Young 初级黑马   /  2018-6-3 07:09  /  1424 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

基本变量类型1.变量的定义




储存数据的容器,程序中可随时修改变量的值,python始终记录变量的最新值。定义变量时不需要指定类型,运行时解释器会根据赋值语句右侧输入的数据自动推到出变量保存类型。
变量的定义可以一次给多个变量定义值a,b,c = 10,12,13(a,b=b,a可以实现值的交换)







2.变量的命名规范(标识符与关键字)




1.只能包含数字,字母以及下划线
2.不能以数字开头,不能有空格;少用下划线开头命名,避免与私有属性混淆3.见名知意4.区分大小写5.不能与关键字重名6.尽量不要与系统内置函数名重合







3.注释




单行注释:以#开头,#右边的所有东西当做说明,而不是真正要执行的程序,起辅助说明作用
多行注释:以”””多行注释”””表示。也可以将双引号改为单引号







4.基本变量类型
(使用type(变量名)查看该变量的类型)
4.1数字型Numbers




1.整型:int表示整数类型      long长整型(python2中使用,但是python3不使用,都是用int表示)
2.浮点型:float表示是一个小数类型3.复数:complex主要用于科学计算。平面场问题,波动问题,电感电容问题4.布尔类型:真假True:非零即真 False:0







4.2非数字型(列表、字典、元组为高级变量类型)




字符串(str):string由引号引起来(单引号或双引号)
  字符串之间可以用+号进行连接  字符串*号表示将字符串进行复制n次,并将其拼接起来







None是独立的数据类型,表示空
5.类型转换




int(x)将x转换为一个整数
float(x)将x转换为一个浮点数str(x)将x转换为一个字符串bool(x)将x转换为布尔值







6.变量的输入与输出6.1输入




需要获取用户在键盘上输入的信息,需要使用input()函数。可以用变量储存input()函数输入的值。注意输入的值存储数据类型都是字符串类型。语法:字符串变量 = input(“提示信息”)








6.1输出(格式化输出)




输出:(格式化输出)
包含%的字符串被称为格式化字符串。相当于一个占位符%s:字符串%d:整数 (%06d表示如果这个数是六位数以上,则显示本身,当少于六位数时,前面用0来补全至六位数。)%f:浮点数 (%.2f表示小数点后显示两位)%%:输出%变量数据类型是数字时,可以用%d、%f、%s占位,变量数据类型是字符串时,只能用%s占位,不能用%d、%f。因为并不是所有的字符串都可以转换成数字。语法格式:“格式化字符串”%变量名“格式化字符串”%(变量名1,变量名2,。。。)







运算符1.算术运算符




加减乘除(+、-、*、/)、取整(//)、取余(求模%)、幂(**)








2.赋值运算符




=
用于给变量赋值







3.复合赋值运算符




+=、-=、*=、/=、//=、%=、**=








4.比较运算符




(需要是相同的数据类型才能比较):
>、<、>=、<=、==、!=其返回值是boolean类型







5.逻辑运算符




与and  或or  非not
使用逻辑运算符按照逻辑连接多个条件与and(&): 每个条件都为true,结果才是true;只要有一个为false,就为false或or(|):只要有一个条件为true,结果就是true;所有条件都为false,结果才是false非not(!):将条件boolean值取反。Q:逻辑运算是否每个条件都要判断完,如果已经判断出不符合,还需要判断吗?判断条件的先后顺序?运行速度?逻辑运算符连接的是什么?A:如果已经判断出不合格,计算机就不再运算后面的条件。通过括号改变优先级。隐式转换(系统默认的转换):print(1 and 2)结果是2 print(1 or 2)结果是1print(not 3)结果为False优先级:print(1 or 2 and 3)结果是1  and 优先级更高括号可以改变优先级逻辑运算符是连接多个boolean值的表达式,返回结果是表达式







6.位运算符




左移(<<)右移(>>)按位与(&)按位或(|)








语句判断语句基本语法:1.格式:(注意缩进)




if 判断条件(条件表达式为boolean值):
    条件成立执行的语句    ......







注意:If语句及其缩进的部分可以看做一个完整的代码块。





if 要判断的条件:
    条件成立时执行语句else:    条件不成立时执行的语句







注意:Else需要与if配合使用





if 条件1:
    语句1elif 条件2:    语句2...​elif 条件n:    语句nelse:    所有条件都不成立时执行的语句







注意:1. elif 需要与if配合使用。需要判断多个条件,条件不同时执行代码不同。同时判断多个条件,所有条件是平级的,无前后关系。
2.逻辑运算符也可以处理多个条件,但是其执行代码是同一个。
2.if嵌套




在满足之前条件下,再增加额外判断时需要使用if嵌套。
格式:if 条件1:    语句1    ...    if 条件1基础上的条件1.1:        条件1.1满足执行的语句1.1        ...    else:        条件1.1不满足执行的语句2        ...else:    条件1不满足执行的语句3    ...







3.随机数的使用




导入随机数模块random
import randomnum = random.randint(a,b)       随机生成并返回一个[a,b]之间的整数,包含a,b







导入工具包时,应放入顶部,方便下方的代码,在任何需要的时候使用该工具包。
循环语句基本语法:
循环: 让需要执行的代码按照指定次数重复使用,提高代码复用性
1.格式:




设置初始条件:计数器
while 条件(判断计数器达到目标数):    条件满足执行的代码    ...    处理条件(计数器改变)







注意:循环初始值、循环条件、循环增量
死循环:如果没有修改循环判断条件,将会导致程序持续执行,无法终止
2.sys包(系统包)




import sys
sys.maxsize(得到一个最大值)当循环中的条件定义为这个值时,也相当于死循环while True:(同理死循环)--灵活运用flag变量,在循环中更改该值







3.break和continue关键字




break:只能在循环里使用,终止整个循环,程序碰到break就直接跳出循环,不再执行后面的代码。













continue:只能在循环里使用,终止本次循环,程序碰到continue就会跳出这一次循环,继续进行下一次循环,这次循环后面的代码都不执行。








4.嵌套




在大循环里又嵌套循环
while 条件1:    满足条件1执行的语句    ...    while 条件2:        满足条件2执行的语句        ...        处理条件2    处理条件1







注意:循环要注意缩进,不要混淆!
5.print()语句




print("打印的内容",end = "以什么结尾")








print方法的使用




def print(*objects, sep=' ', end='\n', file=None, flush=False) Inferred type: (objects: tuple, sep: str, end: str, file: Any, flush: bool) -> None
print(value, ..., sep=' ', end=' ', file=sys.stdout, flush=False) Prints the values to a stream, or to sys.stdout by default. Optional keyword arguments: file: a file-like object (stream); defaults to the current sys.stdout. sep: string inserted between values, default a space. end: string appended after the last value, default a newline. flush: whether to forcibly flush the stream.







6.转义字符




字符串内部使用的特殊字符,用于字符串操作








常见转义字符




\t  协助输出文本,保证垂直方向对齐(制表符Table)
\n  在控制台输出一个换行符(newline)\r  回车(\r前的不显示,仅显示\r后面)\"  在控制台输出一个双引号(")\'  单引号\\  反斜杠字符







linux里用\n换行
windows里用\r\n表示换行
函数基础1.函数的定义(define)




'''把具有独立功能的代码块组织为一个小模块,实现单一的功能'''
def function_name():    #函数封装的代码







2.函数的调用




function_name()直接调用函数。必须先定义函数,才能调用函数








单步调试:Pycharm中F8和F7的使用
Step over:单步执行,但是会将函数看作一行代码直接执行
Step into:进入函数内部单步执行
  • 函数注释:函数名下方进行注释"""注释内容""",按Ctrl+Q查看函数注释
  • TODO:表示正在做的事情,方便提醒代码书写的位置

3.函数的传参def 函数名(参数1,参数2,...,参数n):        代码块#调用函数函数名(参数1,参数2,...,参数n)
1.调用时传递的参数是实参:把真实数据传递到函数里;
定义时的参数为形参:用于接收参数,在函数内当做变量使用。
2.参数增加了函数的通用性,针对相同的数据处理逻辑,能够适应更多的数据
缺省参数:
  • 形参可以有默认参数,参数n = “某个默认值”,当不给这个参数传递值时,函数会使用默认参数值;而当给这个参数传递值时,函数则会使用你传递的值,不再使用默认值。
    指定缺省参数的值时,应该使用最常用的值为默认值
    带有默认值的缺省参数应放在参数列表末尾。没有默认值的需放在前面。
    调用具有多个缺省参数时,并且想给某个参数赋值时,需要指明具体的参数名,即传入命名参数。

4.函数的返回值返回值是函数执行完成后,给调用者的一个结果,使用return关键字,调用者使用变量接收。(一个函数可以有多个return)
1.在哪里调用,就返回到哪里。return表示返回,下方的代码将不会执行
5.函数的嵌套调用
在函数里面调用另外一个函数,实现函数的嵌套使用。
碰到函数调用,就进入该函数定义的位置,执行该函数,函数执行完返回到调用位置。6.使用模块中的函数模块是什么?模块是一个提供工具的工具包,通常是已经开发测试完成的,本质就是一些.py文件。可以让曾经编写的代码在相关操作领域重复使用。在模块中定义的全局变量,函数都是模块能够给外部直接使用的工具使用import关键字导入外部模块。在使用import导入时,在执行程序时会先将这个模块编译成二进制文件,也叫字节码文件(Pyc文件),使得程序运行速度得到提升。模块名也是标识符。需要符合命名规范。7.函数的参数及返回值:
是否接收参数,是否有返回值,根据实际功能需求决定。
元组可以包含多个数据,因此可以使用元组让函数一次返回多个值。使用return时默认时元组,可以不需加括号。可以使用多个变量,一次性接受函数的返回结果。元组中的元素将根据变量的先后位置,顺序的给变量赋值。变量的个数要与元组内元素个数保持一致。
  • 函数传参时,无论该参数是可变类型还是不可变类型,只要针对参数使用赋值语句,会在函数内部修改局部变量的引用,不会影响到外部变量的引用。即外部变量的值不会发生改变。
  • 函数传参时,传递的参数如果是可变类型,在函数内部,使用方法修改数据内容,则会影响到外部数据。
  • 在函数内部对列表使用+=运算符时,并不是先相加再赋值,而本质是执行了extend()方法,不会修改变量的引用,函数执行结束,外部变量数据也会发生改变。而对于其他数据,则是执行相加再赋值的操作,会修改变量引用。

8.多值参数(不定长参数):
有时可能需要一个函数能够处理的参数个数是不确定的,这个时候,就可以使用多值参数
  • python 中有 两种 多值参数:
    • 参数名前增加 一个 * 可以接收 元组
    • 参数名前增加 两个 * 可以接收 字典

  • 一般在给多值参数命名时,习惯使用以下两个名字
    • *args —— 存放 元组 参数,前面有一个 *
    • **kwargs —— 存放 字典 参数,前面有两个 *







def demo(num, *args, **kwargs):
    print(num)    print(args)    print(kwargs)demo(1, 2, 3, 4, 5, name="小明", age=18, gender=True)







提示:多值参数 的应用会经常出现在网络上一些大牛开发的框架中,知道多值参数,有利于我们能够读懂大牛的代码
元组和字典的拆包
  • 在调用带有多值参数的函数时,如果希望:
    • 将一个 元组变量,直接传递给 args
    • 将一个 字典变量,直接传递给 kwargs

  • 就可以使用 拆包,简化参数的传递,拆包 的方式是:
    • 元组变量前,增加 一个 *
    • 字典变量前,增加 两个 *







def demo(*args, **kwargs):
    print(args)    print(kwargs)# 需要将一个元组变量/字典变量传递给函数对应的参数gl_nums = (1, 2, 3)gl_xiaoming = {"name": "小明", "age": 18}# 会把 num_tuple 和 xiaoming 作为元组传递个 args# demo(gl_nums, gl_xiaoming)demo(*gl_nums, **gl_xiaoming)







9.函数的递归函数内部调用函数本身。针对参数不同,处理结果不同。当参数满足一个条件时,函数将不再执行,即递归的出口。
在处理不确定循环条件时,会非常有用
高级变量类型一、列表list使用一个变量专门用于储存一串数据,可以是不同类型,但是通常是使用迭代遍历处理相同类型的数据,对每一个数据进行统一的处理。用[]定义,数据之间逗号隔开。索引(下标):数据在列表中的位置编号。例如:name_list = ["a","b","c","d"]列表的常用操作(方法)1.取索引和取值:获取索引对应的值是多少:name_list[2]。超出索引范围会报错!获取某个值所对应的索引位置:name_list.index("c")。如若值不存在在列表中,则会报错。
  • L.index(value, [start, [stop]]) -> integer -- return first index of value.Raises ValueError if the value is not present.
2.修改指定位置的数据name_list[2] = "good"。将列表索引为2中的"c"修改为"good"。如若列表指定索引不在列表长度范围内,则会报错。3.增加数据(三种方法)3.1 append方法:name_list.append("hello")将"hello"添加到列表末尾。添加的对象可以是另一个列表,但是会将整个列表整体添加进去,以列表形式存储一个索引位置。3.2 insert方法:name_list.insert(2,"hello")将"hello"添加到列表索引为2的位置。(指定索引位置插入的方法)3.3 extend方法:tep_list = ["1","2","3"]  name_list.extend(tep_list)将tep_list中的整个列表数据整体添加到name_list末尾,会将列表中的每一项数据分别存储一个索引位置,得到["a","b","c","d","1","2","3"]
注意:append和extend添加形式的不同
append添加的是一个对象
extend添加的是能够迭代的迭代器
  • L.append(object) -> None -- append object to end
  • L.insert(index, object) -- insert object before index
  • L.extend(iterable) -> None -- extend list by appending elements from the iterable
4.删除数据(三种方法)4.1 pop方法:name_list,pop()默认删除列表最后一个数据。当传递一个索引参数时,可以删除指定索引的数据name_list.pop(2)将索引2位置的"c"删除。4.2 remove方法:name_list.remove("b")将列表中的"b"删除。删除列表指定数据。且删除出现的第一个该数据,如果删除的指定数据不存在,则会报错。4.3 clear方法:name_list.clear()删除列表中所有数据,即清空列表。
4.4 注意:还可以使用del关键字来删除列表操作。del关键字本质上是用来将一个变量从内存中删除(删除对象的引用),后续代码将不能再继续使用该变量。(日常使用尽量用列表内删除数据的方法)
del name_list[2] 将列表索引位置2处的"c"删除了
  • 注意:

关键字是Python中内置的具有特殊意义的标识符。关键字的使用不需要括号。函数和方法的使用需要一对小括号。
  • L.pop([index]) -> item -- remove and return item at index (default last).Raises IndexError if list is empty or index is out of range.
  • L.remove(value) -> None -- remove first occurrence of value.Raises ValueError if the value is not present.
  • L.clear() -> None -- remove all items from L
5.列表统计方法5.1 统计列表长度:len(name_list)得到列表长度5.2 统计列表数据出现的次数:name_list.count("c") 统计列表中"c"出现的个数
  • Return the number of items in a container.
  • L.count(value) -> integer -- return number of occurrences of value
6.列表的排序6.1 升序排列:name_list.sort()6.2 逆序排列:name_list.reverse()6.3 降序排列:name_list.sort(reverse = True)
  • 对列表排序操作是直接修改了原列表,没有返回新的列表!

7.列表的循环遍历遍历:从头到尾依次从列表中获取数据,在循环体内部,对每一个元素执行相同的操作。迭代遍历(iteration):使用for关键字实现迭代遍历格式:(for循环)for name in name_list:        每次内部循环执行的语句range 的用法for i in range(int_num1,int_num2):#遍历[int_num1,int_num2)之间的整数,默认步长为1(步长表示两数的差值)for i in range(int_num1,int_num2,3):#遍历[int_num1,int_num2)之间的整数,步长为3(步长表示两数的差值)
for 循环可以遍历所有非数字类型的变量:列表、元组、字典及字符串
二、元组(tuple)定义用()定义一个元组,数据之间用逗号分隔,索引表示数据在元组中的位置编号。name_tuple = ("zhang","li","wang")
注意:元组与列表类似,最为不同的是元组不能够修改储存的数据(而列表可以),用小括号定义(列表是用中括号定义),通常储存不同类型数据(列表通常储存相同类型数据),通常不用for循环遍历,因为数据类型通常不同,不便操作(列表常用for循环遍历,数据类型相同)
当只定义一个元素的元组时,需要在后面加一个逗号name_tuple = ("a",)
当定义一个空元组时,只需empty_tuple = ()由于不能修改,所以没有什么意义
  • 注意:当元组内部保存有可修改的数据类型时,可以进入可修改类型数据内部修改其数据。比如元组是由一个个列表组成,我们可以修改列表里面的内容。

元组的常用操作(包含的方法与列表方法的使用一样)1.取索引和取值:获取索引对应的值是多少:name_tuple[2]。超出索引范围会报错!获取某个值所对应的索引位置:name_tuple.index("li")。如若值不存在在元组中,则会报错。2.元组统计方法2.1 统计元组长度:len(name_tuple)得到元组长度2.2 统计元组中某个数据出现的次数:name_tuple.count("li") 统计元组中"li"出现的个数应用场景
  • 函数的参数和返回值,一个函数可以接收任意多个参数,或者一次返回多个数据
  • 格式字符串,格式化字符串后面的()本质上就是一个元组
  • 让列表不可以被修改,以保护数据安全

元组和列表之间的转换
使用list()函数将元组转换为列表:                list((元组变量名)
使用tuple()函数将列表转换为元组:        tuple([列表变量名])
三、字典(dictionary)定义用{}定义一个字典,字典使用键值对存储数据,键值对之间用逗号分隔。字典是无序的对象集合。而列表和元组是有序的对象集合。键和值之间使用冒号(:)分隔xiaoming_dict = {"name":"xiaoming","age":18,"gender":True,"height":1.75}键key:是索引(用来获取数据),必须是唯一的,只能使用字符串、数字或元组。(因为不可更改)值value:是数据(用来保存数据),可以取任何数据类型字典常用操作1.取值获取字典中某个键所对应的值result = xiaoming_dict["name"]返回的result值就是"name"键对应的value值"xiaoming"当需要获取的键不存在字典中将会报错KeyError2.增加/修改新增一个键值对xiaoming_dict["weight":70.5]将在该字典中新加了一个"weight"的键和"70.5"的值修改一个键值对xiaoming_dict["age":20]将该字典中age信息修改为20
当输入的键key存在时,就是修改字典的值value;当输入的键key不存在时,就是新增一个新的键值对
3.删除指定需要删除的键keyxiaoming_dict.pop("name")将删除字典中name这个键及对应的值。即删除整个键值对。如果删除的key不存在,将会报错。4.统计键值对数量len(xiaomning_dict)返回该字典中所有键值对的个数5.合并字典temp_dict = {"weight":70.5}xiaoming_dict.update(tem_dict)将tem_dict中的键值对加入到原字典中
如果被合并的字典中包含已经存在的键值对,会覆盖原有的键值对
6.清空字典xiaoming_dict.clear()将该字典中所有键值对清空7.字典的遍历for k in xiaoming_dict:        执行代码        print("%s-%s" % (k,xiaoming_dict[k]))#k表示每一次循环中,获取的键值对的key#打印输出每一个键值对内容,输出顺序无序
实际开发中,由于字典保存数据类型不同,遍历使用不多
  • xiaoming_dict.get()获取字典的键
  • xiaoming_dict.setdefault添加字典的键
  • xiaoming_dict.keys()获取所有的键
  • xiaoming_dict.values获取所有的值

应用场景:
  • 通常将多个字典放在一个列表中,然后对该列表进行遍历得到分组信息。
  • 网络传输数据过程中,一般都是用json数据,还有一些xml数据。

四、字符串(string)定义用一对单引号''或者一对双引号""定义,表示文本数据类型hello_str = "hello hello"字符串常用操作1.统计字符串长度len(hello_str)返回该字符串的长度112.统计某一个子字符串出现的次数hello_str.count("llo")返回子字符串"llo"出现的次数2
如果需要统计的"llo"字符串不存在,将返回数值0
3.某一个子字符串出现的位置hello_str.index("llo")返回子字符串第一次出现的位置索引2
如果查找的子字符串不存在,则会报错
字符串操作方法整理1) 判断类型 - 9
方法
说明

string.isspace()如果 string 中只包含空格(空白字符\t\n\r),则返回 True
string.isalnum()如果 string 至少有一个字符并且所有字符都是字母或数字则返回 True
string.isalpha()如果 string 至少有一个字符并且所有字符都是字母则返回 True
string.isdecimal()如果 string 只包含数字则返回 True,全角数字(程序开发中常用该方法)
string.isdigit()如果 string 只包含数字则返回 True,全角数字、unicode字符串:⑴、\u00b2
string.isnumeric()如果 string 只包含数字则返回 True,全角数字,unicode字符串:⑴、\u00b2 汉字数字
string.istitle()如果 string 是标题化的(每个单词的首字母大写)则返回 True
string.islower()如果 string 中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是小写,则返回 True
string.isupper()如果 string 中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是大写,则返回 True2) 查找和替换 - 7
方法
说明

string.startswith(str)检查字符串是否是以 str 开头,是则返回 True
string.endswith(str)检查字符串是否是以 str 结束,是则返回 True
string.find(str, start=0, end=len(string))检测 str 是否包含在 string 中,如果 start 和 end 指定范围,则检查是否包含在指定范围内,如果是返回开始的索引值,否则返回 -1
string.rfind(str, start=0, end=len(string))类似于 find(),不过是从右边开始查找
string.index(str, start=0, end=len(string))跟 find() 方法类似,不过如果 str 不在 string 会报错
string.rindex(str, start=0, end=len(string))类似于 index(),不过是从右边开始
string.replace(old_str, new_str, num=string.count(old))把 string 中的 old_str 替换成 new_str,如果 num 指定,则替换不超过 num 次3) 大小写转换 - 5
方法
说明

string.capitalize()把字符串的第一个字符大写
string.title()把字符串的每个单词首字母大写
string.lower()转换 string 中所有大写字符为小写
string.upper()转换 string 中的小写字母为大写
string.swapcase()翻转 string 中的大小写4) 文本对齐 - 3
方法
说明

string.ljust(width)返回一个原字符串左对齐,并使用空格填充至长度 width 的新字符串
string.rjust(width)返回一个原字符串右对齐,并使用空格填充至长度 width 的新字符串
string.center(width)返回一个原字符串居中,并使用空格填充至长度 width 的新字符串5) 去除空白字符 - 3
方法
说明

string.lstrip()截掉 string 左边(开始)的空白字符
string.rstrip()截掉 string 右边(末尾)的空白字符
string.strip()截掉 string 左右两边的空白字符6) 拆分和连接 - 5
方法
说明

string.partition(str)把字符串 string 分成一个 3 元素的元组 (str前面, str, str后面)
string.rpartition(str)类似于 partition() 方法,不过是从右边开始查找
string.split(str="", num)以 str 为分隔符拆分 string,str 默认为 '\r', '\t', '\n' 和空格。如果 num 有指定值,则分割num次,形成 num + 1 个子字符串。
string.splitlines()按照行('\r', '\n', '\r\n')分隔,返回一个包含各行作为元素的列表
string.join(seq)以 string 作为分隔符,将 seq 中所有的元素(的字符串表示)合并为一个新的字符串字符串的切片
切片使用索引值来限定范围,从一个大的字符串中切出小的字符串
切片语法:字符串[开始索引:结束索引:步长]
注意:
  • 指定的区间属于左闭右开型[开始索引,  结束索引),从 起始位到结束位的前一位结束(不包含结束位本身)
  • 从头开始,开始索引 数字可以省略,冒号不能省略
  • 到末尾结束,结束索引 数字可以省略,冒号不能省略
  • 步长默认为1,如果连续切片,数字和冒号都可以省略

索引的顺序和倒序
  • 在 Python 中不仅支持顺序索引,同时还支持倒序索引
  • 所谓倒序索引就是 从右向左 计算索引
    • 最右边的索引值是 -1,依次递减


五、公共方法1.Python 内置函数
Python 包含了以下内置函数:
函数
描述
备注

len(item)计算容器中元素个数
del(item)删除变量del 有两种方式(1.del 关键字方式;2.以函数的方式)效果一样
max(item)返回容器中元素最大值如果是字典,只针对 key 比较
min(item)返回容器中元素最小值如果是字典,只针对 key 比较
注意
  • 字符串 比较符合以下规则: "0" < "A" < "a"

2.切片
描述
Python 表达式
结果
支持的数据类型

切片
"0123456789"[::-2]"97531"字符串、列表、元组
  • 切片 使用 索引值 来限定范围,从一个大的 字符串切出 小的 字符串
  • 列表元组 都是 有序 的集合,都能够 通过索引值 获取到对应的数据
  • 字典 是一个 无序 的集合,是使用 键值对 保存数据,不能切片

3.运算符
运算符
Python 表达式
结果
描述
支持的数据类型

+
[1, 2] + [3, 4][1, 2, 3, 4]合并字符串、列表、元组
*
["Hi!"] * 4['Hi!', 'Hi!', 'Hi!', 'Hi!']重复字符串、列表、元组
in
3 in (1, 2, 3)True元素是否存在字符串、列表、元组、字典
not in
4 not in (1, 2, 3)True元素是否不存在字符串、列表、元组、字典
> >= == < <=
(1, 2, 3) < (2, 2, 3)True元素比较字符串、列表、元组
注意
  • in 在对 字典 操作时,判断的是 字典的键
  • in 和not in被称为 成员运算符

成员运算符
成员运算符用于 测试 序列中是否包含指定的 成员
运算符
描述
实例

in如果在指定的序列中找到值返回 True,否则返回 False3 in (1, 2, 3) 返回 True
not in如果在指定的序列中没有找到值返回 True,否则返回 False3 not in (1, 2, 3) 返回 False
注意:在对 字典 操作时,判断的是 字典的键
4.完整的 for 循环语法for 变量 in 集合:    循环体代码else:    没有通过 break 退出循环,循环结束后,会执行的代码    (统一执行一次!)应用场景
  • 在 迭代遍历嵌套的数据类型时,例如一个列表包含了多个字典
  • 需求:要判断 某一个字典中 是否存在 指定的 值
    • 如果 存在,提示并且退出循环
    • 如果 不存在,在 循环整体结束 后,希望 得到一个统一的提示







students = [
    {"name": "阿土",     "age": 20,     "gender": True,     "height": 1.7,     "weight": 75.0},    {"name": "小美",     "age": 19,     "gender": False,     "height": 1.6,     "weight": 45.0},]find_name = "阿土"for stu_dict in students:    print(stu_dict)    # 判断当前遍历的字典中姓名是否为find_name    if stu_dict["name"] == find_name:        print("找到了")        # 如果已经找到,直接退出循环,就不需要再对后续的数据进行比较        breakelse:    print("没有找到")print("循环结束")









1 个回复

倒序浏览
加油啊
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马