Python零基础入门学习笔记(一)

Python 基础入门学习

欢迎访问博客:Python学习笔记

  • 基本语句
  • 基本数据类型
  • 函数
  • 文件操作
  • 面向对象
  • 异常
  • 模块

一.基本语句

  1. 注释# 单行注释 """多行注释 """

  2. print (" ") 输出函数

  3. 基本运算符: + - * / //(取整) %(取余) **(幂运算)

  4. 变量的定义: 变量名 = 值 (每个变量使用前都必须赋值,变量在赋值以后才会被创造,定义时不需要指定变量类型)

  5. type( ) 查看变量类型函数

  6. input( ) 变量输入函数 用法举例: a = input(“输入数字:”) 输入的任何内容的数据类型默认为字符型str

  7. int(a) float(b) 类型转换函数,将a转换为int型,将b转换为float型

  8. 格式化输出

    print("格式化字符串" % 变量1)

    print("格式化字符串" % (变量1,变量2...))

    (%s - 字符串)

    (%d - 带符号十进制整数——%06d表示输出六位数,不足地方用0补全)

    (%f - 浮点数——%.02f表示小数点后显示两位)

    (%% - 输出%)

  9. f-格式化字符串: print(f’ My name is {name} ')

  10. 转义字符\n 换行 \t 制表符 : 1个tab键(4个空格)

  11. 结束符:python中的 print 默认以 \n 为结束符,即默认换行,但可自己设置,如: print('hello', end="\t")

  12. 标识符 由字母数字下划线组成,不能以数字开头,不能与关键词重名。标识符区分大小写,命名规则推荐多个单词时全部小写并将每个单词用下划线隔开。

  13. if语句: 在Python开发中,Tab和空格一定不能混用!

    if 条件1:
    
        条件1成立时要执行的代码
    
    elif 条件2:
        
        条件2成立时要执行的代码
    
    else:
        
        条件12都不成立时执行的代码
    
  14. if语句训练:猜拳游戏

    #if-elif-else训练: 猜拳游戏
    
    
    import random
    
    player = int(input('请出拳 (0-拳头 1-剪刀 2-布):'))
    computer = random.randint(0,2)
    
    #平局
    if player == computer:
        print('平局')
    #电脑胜
    elif ( ((player == 0) and (computer == 2)) or ((player == 1)and(computer == 0)) or ((player == 2)and(computer == 1)) ):
        print('电脑赢了!你个睿智!你连电脑都打不过!')
    #玩家胜
    else:
        print('你赢了!不容易不容易啊!')
    
  15. 随机数的实现:

    导入 random 模块,使用 randint (随机整数) 功 如:

    import random
    
    num = random.randint(0,2) 
    

    ​ (num为0、1、2中的随机一个数)

  16. 三目运算符:

    条件成立时的表达式 if 条件 else 条件不成立时的表达式 
    

    如: MaxNum = a if a>b else b

  17. While 循环:

    while 条件:
    
        条件成立时重复执行的代码
    

    注意: 计数的初始值习惯写为0

  18. break 和 continue :

    break终止循环,即不再循环

    continue 为退出当前一次循环而直接执行下一次循环,即跳入下一次循环

  19. for 循环:

    for 临时变量 in 序列:
        
        重复执行的代码
    
  20. while 与 else : 如果循环由 break 停止,则else下的代码不执行,for 与 else 的用法与此类似

    while 条件:
    
        条件成立时重复执行的代码
    
    else:
    
        循环正常结束之后执行的代码
    

二.基本数据类型

  1. 字符串可以用单引号、双引号、三引号括起来,字符串为不可变类型

  2. python中每个字符串自带下标和索引,可用 str[x] 来精确访问字符串 str 中的某个字符

  3. 切片: 指对 字符串列表元组 进行截取其中一部分的操作

    语法: 序列[开始位置下标 : 结束位置下标 : 步长]

    其中切片不包含结束位置下标对应的数据 ,即开始位置下标和结束位置下标为 [ ) 的包含形式

    下标 和 步长 均可不写或写负数,步长默认为1,若下标开始到结束的方向与步长的方向冲突,则无法选取出数据

  4. 字符串的查找: find() 、index() 、count() 、rfind() 、rindex()

    find() : 检测某个子串是否包含在这个字符串中,如果存在则返回这个子串开始位置的下标,否则返回-1

    字符串序列.find( 子串 , 开始位置下标 , 结束位置下标 )
    

    开始和结束位置下标可以省略,表示在整个字符串序列中查找

    index() : 与find()函数的用法一样,但如果不存在要查找的子串,则会报错

    count() :返回某子串在该字符串中出现的次数,若不存在则返回0

    rfind()rindex() 查找方向为从右侧开始,其功能与 find() 与 index() 相同

  5. 字符串的替换replace() 替换

    字符串序列.replace ( 旧子串、新子串、替换次数 )
    

    注意: replace函数并不会改变原有字符串的数据,修改后的数据是replace函数的返回值

  6. 字符串的分割split() 分割,返回一个列表,丢失分割字符

    字符串序列.split(分割字符,分割次数)
    

    注意:split函数也不会改变原有字符串数据,修改后的数据为函数返回值

  7. 列表的合并join() 合并,返回一个字符串,添加连接字符

    连接字符串.join(多字符串组成的列表)
    

    注意: join() 合并 是 split() 分割 的逆序操作

  8. 字符串修改大小写函数

    capitalize() 将字符串第一个字母转换为大写,其余均为小写

    title() 将字符串中每个单词的首字母转化成大写,其余均为小写

    lower() 将字符串中的大写全部转换为小写

    upper() 将字符串中的小写全部转换为大写

    例:

    initial: brotheR aNd me
    capitalize: Brother and me
    title: Brother And Me
    lower: brother and me
    upper: BROTHER AND ME

  9. 字符串删除空白字符函数

    lstrip() : 删除字符串左侧空白字符

    rstrip() : 删除字符串右侧空白字符

    strip() : 删除字符串两侧空白字符

    例:

    initial: " brother and me "
    lstrip: “brother and me "
    rstrip: " brother and me”
    strip: “brother and me”

  10. 字符串对齐函数: ljust() 、 rjust() 、center()

    返回 一个原字符串 左/右/中 对齐,并用指定字符(默认空格)填充至对应长度的新字符串

    字符串序列.ljust( 长度 , 填充字符 ) 
    
    字符串序列.rjust( 长度 , 填充字符 ) 
    
    字符串序列.center( 长度 , 填充字符 ) 
    

    例:

    initial: brother and me
    ljust: brother and me----------------
    rjust: ----------------brother and me
    center: --------brother and me--------

  11. 字符串判断开头或结尾函数

    startswith() : 检查字符串是否以指定子串开头,是则返回True,否则返回False。如果设置开始和结束位置下标,则在指定范围内检查

    字符串序列.startswith(子串,开始位置下标,结束位置下标)
    

    endswith() : 检查字符串是否以指定子串结尾,用法与 startswith()相同

    字符串序列.endswith(子串,开始位置下标,结束位置下标)
    
  12. 字符串字符类型判断函数

    isalpha() : 如果字符串非空且只包含字母则返回True , 否则返回False

    isdigit() : 如果字符串非空且只包含数字则返回True , 否则返回False

    isalnum() : 如果字符串非空且只包含数字或字母则返回True, 否则返回False

    isspace() : 如果字符串非空且只包含空格则返回True , 否则返回False

  13. 列表 : 可以用下标选取指定数据,列表为可变类型

  14. 列表数据查找函数

    index() : 返回指定数据所在位置的下标,若数据不存在则报错

    列表序列.index(数据, 开始位置下标, 结束位置下标)
    

    count() : 返回指定数据在该列表出现的次数,若数据不存在则返回0

    列表序列.count(数据)
    

    len() : 返回列表的长度,即列表中数据的个数

    len(列表序列)
    
  15. 判断列表中是否存在指定数据

    in : 判断指定数据在某个序列的存在,存在返回True,否则返回False

    '指定数据' in 列表序列
    

    not in : 与 in 的用法相同,返回结果相反

  16. 列表数据增加函数

    append() : 列表结尾追加数据,若数据为一个序列,则直接追加整个序列到列表的结尾位置

    列表序列.append(数据)
    

    extend() : 列表结尾追加数据,若数据为一个序列,则将序列的数据逐一添加到列表,若数据为字符串,则将单独的每个字符逐一添加到列表

    列表序列.extend(数据)
    

    insert() : 指定位置新增数据,增添方式与 append() 相同

    列表序列.insert(位置下表,数据)
    
  17. 列表数据删除函数

    del 目标(列表名 或 列表指定下标数据)

    pop() : 删除指定下标的数据(默认为最后一个),并返回该数据。

    列表序列.pop(下标)
    

    remove() : 移除列表中某个数据的第一个匹配项,若匹配失败则报错

    列表序列.remove(数据)
    

    clear() : 清空列表中的所有数据

    列表序列.clear()
    
  18. 列表数据修改函数

    修改指定下标数据列表序列[下标] = 数据

    reverse() : 将列表数据的顺序逆置

    列表序列.reverse()
    

    sort() : 对列表的数据进行排序

    列表序列.sort( key = None, reverse = False)
    

    注意: reverse = True 降序 reverse = False 升序(默认)

  19. 列表数据复制函数

    copy() : 列表数据复制

    新列表序列 = 原列表序列.copy()  
    

    即将原列表的数据复制到新列表中

  20. 列表的循环遍历

    while循环方法 :

    i = 0
    
    while i < len(list):
    
        print(list[i])
    
        i += 1
    

    for循环方法 :

    for i in list:
    
        print(i)
    
  21. 列表嵌套:指一个列表里包含了其他的子列表。

    List = [ ['a' , 'b' , 'c'] , ['1' , '2' , '3'] , ['&' , '$' , '%'] ]

  22. 列表综合训练

    #将8位老师随机分配到3个办公室中
    import random
    teacher = ['a1','a2','a3','a4','a5','a6','a7','a8']
    room = [[],[],[]]
    for i in teacher:
        n = random.randint(0,2)
        room[n].append(i)
    print(room)
    
    i = 1
    for r in room:
        print(f'办公室{i}的人数是{len(r)},他们分别为:',end = '\t')
        for name in r:
            print(name,end = '\t')
        print()
        i += 1
    
  23. 元组: 一个元组可以存储多个数据(与列表相同),但元组内的数据是不能修改的。

    元组名 (数据1 , 数据2 , 数据3)

    注意: 如果定义的元组只有一个数据,那么需要添加逗号,凑则数据类型为该数据类型,而不是 元组(tuple) 数据类型,如 tuple = (‘x’ , )

  24. 元组的常见操作

    按下标查找数据 : 如tuple1[0] 、 tuple1[1]等

    index() : 查找某个数据,用法与字符串、列表的index相同

    count() : 统计某个数据在当前元组出现的次数

    len() : 统计元组中的数据个数

  25. 元组数据的修改

    元组内的直接数据如果修改则立即报错

    如果元组里面有列表,可直接修改列表内的数据,如 (‘abc’ , ‘qwe’ , [‘123’ , ‘456’ , ‘789’] , ‘jkl’) 元组就可以修改其中的 ‘123’ , ‘456’ , ‘789’ 数据

  26. 字典:字典里的数据是以键值对形式存储的。字典为可变类型

    特点: 符号为大括号,数据为键值对形式出现,各个键值对之间用逗号隔开

    dict1 = {
            '键1' : '值1' , '键2' : '值2' , '键3' : '值3' }
    

    空字典除了可以用空大括号创建,也可以用函数创建: dict2 = dict()

  27. 字典常见操作

    增 / 改字典序列[‘key’] = 值

    注意: 如果key存在则修改该键对应的值,如果key不存在则新增此键值对

    del(dict) 删除字典

    del dict['Key'] 删除字典中指定键值对

    dict.clear() 清空字典

    按key值写法直接查找字典序列[‘键’]

    按函数写法查找: get() keys() values() items()

    get() : 获取某个键对应的值

    字典序列.get(key , 默认值)
    

    注意:若当前查找的key不存在则返回默认值,若默认值省略不写则返回None

    keys() : 获取字典中所有的key,并返回可迭代对象

    字典序列.keys()
    

    values() : 获取字典中所有的values,并返回可迭代对象

    字典序列.values()
    

    items() : 获取字典中所有的键值对(key 和 values),并返回可迭代对象 ,里面的数据是元组

    字典序列.items()
    
  28. 字典的循环遍历

    遍历字典的Key

    for key in dict1.keys():    
        print(key)
    

    遍历字典的Value

    for value in dict1.values():    
        print(value)
    

    遍历字典的元素

    for item in dict1.items():    
        print(item)
    

    遍历字典的键值对(拆包)

    for key, value in dict1.items():
        print(f'{key} = {value}')
    
  29. 集合: 创建集合可使用 {} 或 set() ,但是如果要创建空集合只能使用 set() , 因为使用 {} 会创建空字典。

    集合数据特点: 集合里面的数据会自动去重,不允许重复;集合里面的数据没有顺序,且不支持下标。集合是可变类型

  30. 集合的创建

    直接创建: s1 = {10 , 20 , 30 , 40 , 50}

    使用set()创建: s2 = set('brother')

    创建空集合: s3 = set()

  31. 集合中数据的常见操作

    增加数据: add() update()

    集合.add(数据) 增加单个数据,要增加的数据在原集合中存在的话,不进行任何操作

    集合.update(数据列表) 在集合中增加数据序列

    删除数据: remove() discard() pop()

    集合.remove(数据) 删除集合中的指定数据,如果数据不存在则会报错

    集合.discard(数据) 删除集合中的指定数据,如果数据不存在也不会报错

    集合.pop() 随即删除集合中的某个数据,并返回这个数据

    查找数据: in 判断数据在集合序列 not in 判断数据不在集合序列

  32. 公共操作:运算符、公共方法、容器类型转换

    运算符:

    + 合并,支持字符串、列表、元组

    * 复制,支持字符串、列表、元组

    in 元素是否存在,支持字符串、列表、元组、字典

    not in 元素是否不存在,支持字符串、列表、元组、字典

    公共方法:

    len() 计算容器中元素个数

    del() 删除元素

    max() 返回容器中元素的最大值

    min() 返回容器中元素的最小值

    range(start,end,step) 生成从start到end的数字(其中不包含end数字),步长为step,供for循环使用

    enumerate() 将一个可遍历的数据对象(列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在for循环中

    enumerate(可遍历对象, start=0)
    

    容器类型转换:

    tuple(序列): 将某个序列转换成元组

    list(序列): 将某个序列转换成列表

    set(序列): 将某个序列转换成集合

  33. 推导式(生成式): 列表推导式、字典推导式、集合推导式

    作用: 化简代码

    列表推导式:用一个表达式创建一个有规律的列表或控制一个有规律列表。

    创建0-10的列表:

    list = [i for i in range(10)]
    

    创建0-10的偶数列表:

    list = [i for i in range(10) if i % 2 == 0]
    

    多个for循环列表:

    list = [(i , j) for i in range(3) for j in range(3)]
    

    字典推导式:快速合并列表为字典或提取字典中目标数据

    赋值体验

    dict = {
           i:i*2 for i in range(1,5)}
    

    将两个列表合并为字典

    list1 = ['name' , 'age' , 'gender']
    
    list2 = ['Tom' , 20 , 'man']
    
    dict = {
            list1[i] : list2[i] for i in range(len(list1)) }
    

    提取字典中目标数据

    counts = {
           'a' : 150 , 'b' : 200 , 'c' : 250}
    
    count = {
           key : value for key , value in counts.items() if value >= 200}
    

    集合推导式

    list = [1,1,2]
    set = {
           i * 2 for i in list}
    

你可能感兴趣的:(编程语言,python,列表)