Python学习(二)

分支和循环

  • 分数判断等级
score = int (input('请输入一个分数:'))
if 100 >= score >= 90:
    print('A')
elif 90 > score >= 80:
    print('B')
elif 80 >= score >= 60:
    print('C')
elif 60 > score >= 0:
    print('D')
else:
    print('输入错误!')

在这里插入图片描述

  • python可以有效避免“悬挂else”
    在c语言和python中,下面的代码有着不同的意思
if ( hi > 2 )
	if ( hi > 7 )
		printf ("好棒! 好棒!");
else
	printf ("切~"); 

在 c 语言中 else 和第二个 if 匹配执行;
在 python 中 else 和第一个 if 匹配执行。

条件表达式(三元操作符)

语法: x if 条件 else y

x,y = 4,5
if x < y:
	small = x
else: 
	small = y

可改进为:
small = x if x < y else y

断言 (assert)

当 assert 后边的条件为假的时候,程序自动崩溃并抛出 AssertionError 的异常。
在这里插入图片描述
利用它在程序中置入检查点,当需要确保程序中的某个条件一定为真才能让程序正常工作的话,assert关键字就派上用场了。

循环

  • while 循环
  • for 循环(计数器循环)
    python 的 for 循环可以自动调用迭代器的next方法,可以自动捕获异常,结束循环。
    语法:
for 目标 in 表达式
	循环体

在这里插入图片描述
在这里插入图片描述

  • range()
    语法: range([start,] stop[,step=1])
    中括号括起来的参数是可选的
    step = 1 表示step的默认值是1,表示步长为1
    表示:从start参数值开始到stop参数的值结束的数字序列。
    在这里插入图片描述
    默认从零开始
    和for合作
    在这里插入图片描述
    在这里插入图片描述
    range(2,9) 不包含9
    在这里插入图片描述
  • break & continue
for i in range(10):
    if i%2 != 0:
        print(i)
        continue
    i += 2
    print(i)

在这里插入图片描述
第一次循环:i 从range(10)中取第一个数 0,由于除以2余数为0,执行 i += 2 ,输出 i 为 2;
第二次循环:i 从range(10)中取第二个数 1,除以2 余数不为0,输出 i;
以此类推,在这里 i += 2 的数值变化变化不影响 i 顺序取range(10) 的值。

列表

数组和列表的区别,数组要求放在一起的数据,数据类型一致,而列表不要求。在 python 中没有数组的概念。

创建列表

在这里插入图片描述

向列表中添加元素

  • append()
    在这里插入图片描述
    在对象中把属于对象的函数称之为方法,append方法在这里是属于list2 这个列表对象的。
    在这里插入图片描述
    发现使用append一次性插入两个元素报错
  • extend()
    这里就要用到extend(),extend()是利用扩张的方式来扩展列表
    在这里插入图片描述
    依旧报错,extend()实际上也是需要一个参数,但是extend()方法可以同时将两个元素加入到列表中,extend()方法的原理是使用一个列表来扩展另一个列表,所以这里的参数应该是一个列表。
    在这里插入图片描述
  • insert()
    append() 和 extend() 函数都是默认插入到末尾,如果想指定插入位置,这时就要使用insert()
    在这里插入图片描述
    由于list是从0开始的,所以新的元素插入到了位置1处

从列表中获取元素

列表索引值从0开始

  • 交换元素
    在这里插入图片描述

从列表删除元素

  • remove()
    只要知道元素的具体名字,不需要知道位置,就可以完成删除
    在这里插入图片描述
  • del
    del 不是一个列表的方法,它是一个语句
    在这里插入图片描述
del member 
# 删除整个member表
  • pop()
    python 中的列表实际上是通过栈结构进行存储的,因此有pop() 这样一个弹栈的方法,pop() 方法是从列表中取出最后一个元素,并返回给你
    在这里插入图片描述
    也可以利用返回值对变量赋值
    在这里插入图片描述
    pop() 还可以添加参数
    在这里插入图片描述

列表分片

  • 一次性获取多个元素
    在这里插入图片描述
    在这里插入图片描述
    从头开始或到结尾可以省略参数值
  • 拷贝列表
    在这里插入图片描述

列表的常用操作符

  • 比较操作符
    在这里插入图片描述
  • 逻辑操作符
    在这里插入图片描述
  • 连接操作符
    在这里插入图片描述
    不要随便使用 “+” 来扩展列表,利用extend()更加规范
    “+”两边对象的类型必须是一致的
    在这里插入图片描述
  • 重复操作符
    在这里插入图片描述
  • 成员关系操作符
    查看元素是否在某个列表中
    在这里插入图片描述
    当查看元素是否存在列表中的列表里时,发现只能判断一层的列表中的元素
    在这里插入图片描述
    如何查看判断列表中的列表里的元素是否存在
    在这里插入图片描述
  • 访问列表中的列表的值
    类似于c语言中访问数组
    在这里插入图片描述

列表类型的内置函数

查看列表的内置函数
在这里插入图片描述

  • count()
    参数在列表中的数量,计数
    在这里插入图片描述

  • index()
    参数在列表中的位置,索引
    在这里插入图片描述
    这时返回的是第一个出现 8 的位置
    还可以定义一个范围,查看参数第一次出现的位置
    在这里插入图片描述
    这里是在 list6 中从第 3~9 个位置上找第一次出现 5 的位置

  • reverse()
    列表翻转
    在这里插入图片描述

  • sort()
    sort(func,key,reverse)
    func 指定排序的算法
    key 和算法搭配的关键字
    用指定的方式对列表的成员进行排序
    reverse 默认取False
    在这里插入图片描述
    reverse取True,从大到小排序
    在这里插入图片描述

  • 复制列表
    在这里插入图片描述
    看起来是利用分片和直接赋值的方式复制出了两个新表list2和list3,那么他们有什么区别吗,先对list1排一下序
    在这里插入图片描述
    发现 list3 跟 list1 进行了变化,而 list2 没有变化,这是因为python的变量就是一个标签,在这里 list3 就是对 list1 表所对应的数据又加了一个 list3 的标签,实际上并没有新建一个表。

元组

元组和列表在使用上是非常相似的,但是元组是一种不可改变的类型,如果定义了一个元组,那么里面的元素不能再改变。

创建和访问元组tuple

  • 创建元组、访问元组、对元组尽心切片复制
    在这里插入图片描述
    尝试修改元组的元素,报错
    在这里插入图片描述
  • 元组的标志性符号
    在这里插入图片描述
    那么创建一个只有单个元素的元组呢
    在这里插入图片描述
  • 数乘元组
    在这里插入图片描述
    数乘一个元组的时候,乘号就不再是乘号,而是一个重复操作符

更新和删除元组

元组的更新类比字符串,字符串同样不能修改,需要对现有的字符串进行切片,来构成新的字符串来达到更新字符串。

  • 更新元组
    在这里插入图片描述
  • 删除元组中元素
    通过切片的方式间接删除一个元素
    在这里插入图片描述
    可以利用del 删除元组,但是其实并没有必要,因为python和很多面向对象的语言一样,会隔段时间就检查是否有标签指向该元组,若没有,便会自动释放。

元组的常见操作符

  • 拼接操作符
  • 重复操作符
  • 成员操作符
    在这里插入图片描述
  • 关系操作符
    在这里插入图片描述
  • 逻辑操作符

字符串(补充)

在python中并没有字符这个类型,字符即一个长度为1的字符串。

  • 切片
    在这里插入图片描述
  • 索引字符
    在这里插入图片描述
  • 更新字符串
    在这里插入图片描述
    利用新的标签指向新的字符串,但是旧的字符串依然存在,不过没多久python的垃圾回收机制就会回收这个旧的字符串,释放空间。
    列表、元组、字符串都是属于序列类型,一下三种操作类似
  • 比较操作符
  • 逻辑操作符
  • 成员操作符

字符串方法

  • capitalize()
    把字符串的第一个字符改为大写
    在这里插入图片描述

  • casefold()
    把整个字符串的所有字符改为小写
    在这里插入图片描述

  • center(width)
    将字符串居中,并使用空格填充至长度width的新字符串
    在这里插入图片描述

  • cont(sub[,start[,end]])
    返回sub在字符串里边出现的次数,start和end参数表示范围,可选。
    在这里插入图片描述
    区分大小写

  • encode(encoding=‘utf-8’,errors=‘strict’)
    以encoding指定的编码格式对字符串进行编码。

  • endswith(sub[,start[,end]])
    检查字符串是否以sub字符串结束,如果是返回True,否则返回False。start和end参数表示范围,可选。
    在这里插入图片描述

  • expandtabs([tabsize=8])
    把字符串中的tab符号(\t)转换为空格,如不指定参数,默认的空格数是tabsize=8
    在这里插入图片描述

  • find(sub[,start[,end]])
    检测sub是否包含在字符串中,如果有则返回索引值,否则返回-1,start和end参数表示范围,可选。
    在这里插入图片描述

  • index(sub[,start[,end]])
    跟find方法一样,不过如果sub不在string中会产生一个异常。
    在这里插入图片描述

  • isalnum()
    如果字符串至少有一个字符并且都是字母或数字(即可以全是字母、全是数字、字母和数字混合)则返回True,否则返回False。(是isalpha和isnumeric的结合)

  • isalpha()
    如果字符串至少有一个字符并且所有字符都是字母则返回True,否则返回False。

  • isnumeric()
    如果字符串中只包含数字字符,则返回True,否则返回False。

  • isdecimal()
    如果字符串只包含十进制数字则返回True,否则返回False。

  • isdigit()
    如果字符串只包含数字则返回True,否则返回False。
    在这里插入图片描述

isdigit()
True: Unicode数字,byte数字(单字节),全角数字(双字节),罗马数字
False: 汉字数字
Error: 无

isdecimal()
True: Unicode数字,,全角数字(双字节)
False: 罗马数字,汉字数字
Error: byte数字(单字节)

isnumeric()
True: Unicode数字,全角数字(双字节),罗马数字,汉字数字
False: 无
Error: byte数字(单字节)

  • islower()
    如果字符串中至少包含一个区分大小写的字符,并且这些字符都是小写,则返回True,否则返回False。
    在这里插入图片描述
    在这里插入图片描述

  • isspace()
    如果字符串中只包含空格,则返回True,否则返回False。

  • istitle()
    如果字符串是标题化(所有单词都是以大写开始,其余字母均小写),则返回True,否则返回False。
    在这里插入图片描述
    在这里插入图片描述

  • isupper()
    如果字符串中至少包含一个区分大小写的字符,并且这些字符都是大写,则返回True,否则返回False。

  • join(sub)
    以字符串作为分隔符,插入到sub中所有的字符之间。
    在这里插入图片描述

  • ljust(width)
    返回一个左对齐的字符串,并使用空格填充至长度为width的新字符串。
    在这里插入图片描述

  • lower()
    转换字符串中所有大写字符为小写。

  • lstrip()
    去掉字符串左边的所有空格。
    在这里插入图片描述

  • partition(sub)
    找到子字符串sub,把字符串分成一个3元组(pre_sub,sub,fol_sub),如果字符串中不包括sub则返回(‘原字符串’,’’,’’)。
    在这里插入图片描述

  • replace(old,new[,count])
    把字符串中的old子字符串替换成new子字符串,如果count指定,则替换不超过count次。
    在这里插入图片描述

  • rfind(sub[,start[,end]])
    类似于find()方法,不过是从右边开始查找。

  • rindex(sub[,start[,end]])
    类似于index()方法,不过是从右边开始。

  • rjust(width)
    返回一个右对齐的字符串,并使用空格填充至长度为width的新字符串。

  • rpartition(sub)
    类似于partition()方法,不过是从右边开始查找。

  • rstrip()
    删除字符串末尾的空格。

  • split(sep=None, maxsplit=-1)
    不带参数默认是以空格为分隔符切片字符串,如果maxsplit参数有设置,则仅分隔maxsplit个子字符串,返回切片后的子字符串拼接的列表。
    在这里插入图片描述

  • splitlines(([keepends]))
    按照‘\n’分隔,返回一个包含各行作为元素的列表,如果keepends参数指定,则返回前keepends行。

keepends – 换行符(’\r’, ‘\r\n’, \n’)
在这里插入图片描述

  • startswith(prefix[,start[,end]])
    检查字符串是否以prefix开头,是则返回True,否则返回False。start和end参数可以指定范围检查,可选。

  • strip([chars])
    删除字符串前边和后边所有的空格,chars参数可以定制删除的字符,可选。
    在这里插入图片描述
    只能删掉前面和后面的‘s’,不影响在字符串中间的‘s’。

  • swapcase()
    翻转字符串中的大小写。

  • title()
    返回标题化(所有的单词都是以大写开始,其余字母均小写)的字符串
    在这里插入图片描述

  • translate(table)
    根据table的规则(可以由str.maketrans(‘a’,‘b’)定制)转换字符串中的字符。
    在这里插入图片描述
    在这里插入图片描述

  • upper()
    转换字符串中的所有小写字符为大写。

  • zfill(width)
    返回长度的为width的字符串,原字符串右对齐,前边用0填充。
    在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值