Python入门随记

Python入门随记

  1. 格式化输出:%d:十进制整数 %s:字符串 %c:字符 %f:浮点数

  2.    print("www","baidu","com",sep=".")  sep=".":表示用“.”分割之前字符,end=:"\t,\n"
    
  3. input:输入;type:数据类型

  4. import、from…import…导入所需库

  5.    ## 三元表达式
       x = 5
       print("hahahaha") if x >= 5 else print("你")
    
  6. floor 【向下取整】{floor(21.3)---->21}

  7. 除法

    a = 16 // 2
    b = 16 / 2
    print(a)
    print(type(a))
    print(b)
    print(type(b))
    -----------------
    8
    <class 'int'>
    8.0
    <class 'float'>
    
  8. random 生成随机数:randint(1,2)–>1和2均能取到

  9. for i in range(1, 4) 包含1,不包含4

  10.    python中whileelse可以配合使用
       
       count = int(input("请输入一个数字:\n"))
       while count < 5:
           print(count)
           count += 1
       else:
           print("大于或等于5")
    
  11. break,continue,pass

    break:可以跳出for和while循环体
    continue:跳出当前循环,直接进行下一轮轮循环
    pass是空语句,一般用作占位语句,不做任何事情

  12. \b:退格 、\v:纵向制表符 \r:回车 \f:换页

  13. list(列表):类似于数组

    写在方括号[]中,以”,“隔开

    列表中可以包含:数字、字符串和列表(嵌套使用),可以混合使用

    列表索引从0开始,-1为末尾的开始位置

    不同列表可以直接通过”+“连接组合

  14. list操作

    list.append(5):末尾追加
    list.extend(list2):列表追加
    list.insert(1,”呵呵“):在位置1插入”呵呵“

    del list[i]:删除指定索引处的值;
    remove(“i”):删除指定字符中的第一个匹配值,若没有则抛出异常
    list.pop(i):弹出指定位置元素,不填写弹出尾部
    list[0]=“呵呵”:通过下标进行修改

    查元素:in、not in-----> “呵呵” in list

    list.sort():升序排序 ------> list.sort(reverse=True):降序排序

    list.reverse():列表反转

    list.index(“呵呵”):获取指定内容的索引

    list.count(“呵呵”):统计列表中“呵呵”出现的次数

    列表的切片:[::]----->list[2:5:2] ------>切出一个子列表

    list列表嵌套---->二位数组:list=[[],[],[]]

    if list:列表中存在至少一个元素为True,否则为False

    内置序列函数:
    enumerate():追踪序列元素时返回其索引,返回了(i, value)元组的序列,其中value是元素的值,i是元素的索引
    sorted():对序列元素进行排序; sorted(reverse=True):反向排序
    zip():将列表、元组或其他序列进行配对,组合成一个包含元素的新列表

        seq = ["hello", '你的', '热干']
    	seq1 = ["world", '名字', '面']
    	for i, (a, b) in enumerate(zip(seq, seq1)):
       		 print('{0}:{1} {2}'.format(i, a, b))
        
        0:hello world
    	1:你的 名字
    	2:热干 面
    

    列表解析:

    普通版:{ expression for i in iterable }
    进阶版 { expression for i in iterable if… for j in iterable if… …}

  15. 范围区间左闭右开:

    for i in range(1, 4) ------>range

    list.index(“a”,1,3) ------>index

  16. 控制台输出带颜色:print("\033[显示方式;前景色;背景色m 要输出的内容 \033[m")

  17. Tuple(元组)

    Tuple和list的类似,

    不同之处是tuple内容不可修改,

    tuple写在小括号里
    元组函数tuple()

    元素之间使用“,”隔开

    tuple元素不可改变,但可包含可变对象,如list

    !!定义只有1个元素的tuple时,必须加逗号
    元组拆包:

    y = 4, 5, 6
    a, b, c = y
    print(b) # b=5

    1. 集合

    集合(set)是一个无序的不重复元素序列。

    可以使用大括号 { } 或者 set() 函数创建集合,注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。

    >>> a = set(‘abracadabra’)
    >>> b = set(‘alacazam’)
    >>> a
    {‘a’, ‘r’, ‘b’, ‘c’, ‘d’}
    >>> a - b # 集合a中包含而集合b中不包含的元素
    {‘r’, ‘d’, ‘b’}
    >>> a | b # 集合a或b中包含的所有元素
    {‘a’, ‘c’, ‘r’, ‘d’, ‘b’, ‘m’, ‘z’, ‘l’}
    >>> a & b # 集合a和b中都包含了的元素
    {‘a’, ‘c’}
    >>> a ^ b # 不同时包含于a和b的元素
    {‘r’, ‘d’, ‘b’, ‘m’, ‘z’, ‘l’}

    添加元素:s.add( x )
    		s.update( x )
    移除元素:s.remove( x ) ----将元素 x 从集合 s 中移除,如果元素不存在,则会发生错误。
    		s.discard( x )----移除集合中的元素,且如果元素不存在,不会发生错误
    		s.pop()------随机删除集合中的一个元素,
    		pop方法会对集合进行无序的排列,然后将这个无序排列集合的左面第一个元素进行删除。
    清空集合:s.clear()
    add()	为集合添加元素
    clear()	移除集合中的所有元素
    copy()	拷贝一个集合
    difference()	返回多个集合的差集
    difference_update()	移除集合中的元素,该元素在指定的集合也存在。
    discard()	删除集合中指定的元素
    intersection()	返回集合的交集
    intersection_update()	返回集合的交集。
    isdisjoint()	判断两个集合是否包含相同的元素,如果没有返回 True,否则返回 False。
    issubset()	判断指定集合是否为该方法参数集合的子集。
    issuperset()	判断该方法的参数集合是否为指定集合的子集
    pop()	随机移除元素
    remove()	移除指定元素
    symmetric_difference()	返回两个集合中不重复的元素集合。
    symmetric_difference_update()	移除当前集合中在另外一个指定集合相同的元素,并将另外一个指定集合中不同的元素插入到当前集合中。
    union()	返回两个集合的并集
    update()	给集合添加元素	
    
    a={'aaaaavvvvvvvvaaaaaa'}
    print('--'*10)
    a=set('aaaaavvvvvvvvaaaaaa')
    
    <class 'set'>
    {'aaaaavvvvvvvvaaaaaa'}
    ------------
    <class 'set'>
    {'a', 'v'}																							
    
  18. 字典

    定义字典:{‘键’:‘值’,‘键’:‘值’,‘键’:‘值’,}

    字典的”键“可理解为列表中的索引

    字典添加:dict[‘键’]=’值‘

    字典删除:del dict[‘键’]

    dict.item():生成一个列表,返回字典中的 键和值—返回类型时“元组”

    dict.keys():生成一个列表,返回字典中的 键

    dict.values():生成一个列表,返回字典中的 值
    使用update():方法将两个字典和并

    update方法改变了字典中元素位置,因此对于任何原字典中已经存在的键,
    如果传给update方法的数据也含有相同的键,则它的值将会被覆盖

    a = {'hello': 'world', '你的': '名字', '热干': '面'}
    b = {'hello': '小弟',  '干': '面'}
    
    a.update(b)
    print(a)
    {'hello': '小弟', '你的': '名字', '热干': '面', '干': '面'}
    
  19. 列表、集合、字典的推导式

    列表:[expr for val in collection if condition] --条件判断可以省略
    集合:{expr for val in collection if condition}
    字典:{key_expr,value_expr for key,value in collection if condition}

  20. 函数def

    形参:函数定义中的变量-------------实参:调用函数时传递给函数的变量

    位置实参、关键字实参;任意数量实参和任意数量的关键字实参{*toppings------**toppings}

    returen 获取函数返回值:有返回值时需要设置一个变量接收返回值

    python将非空字符串解读为true-----if middle_name:

    需要传递一个列表却不想修改原列表时可以使用列表副本—list[:]

    传递任意数量的实参:“ *toppings ”---->形参名 *toppings中的星号让Python创建一个名为toppings的’空元组‘,并将收到的所有值都封装到这个’元组‘中
    (‘辣椒’, ‘蔬菜’, ‘辣油’)
    <class ‘tuple’>
    形参**user_info中的两个星号让Python创建一个名为user_info的’空字典‘
    调用----->user_profile(“陈”, “独秀”, work=“宣传”, hobby=“吹牛”)

    导入模块、函数等

    import pizza让Python打开文件pizza.py

    from pizza import make_pizza,priny_pizza–用逗号分隔函数名,可根据需要从模块中导入任意数量的函数

    from pizza import * 使用星号(*)运算符可让Python导入模块中的所有函数

  21. .__init()__是一个特殊的方法,每当你根据类创建新实例时,Python都会自动运行它

    self前缀的变量可以被类内的所有方法使用,可以被的任意实例调用

    实例化:根据类来创建对象被称为实例化

    继承:super().__init()__初始化父类属性

    super()是一个特殊函数,帮助Python将父类和子类关联起来。这行代码让Python调用ElectricCar的父类的方法__init__(),让ElectricCar实例包含父类的所有属性

    使用实例作为属性

    导入模块: import car----------from car import Car,Car02

  22. 文件

    with open(file_name) as pd:
    函数open()返回一个表示文件的对象
    使用关键字with时,open()返回的文件对象只在with代码块内可用
    如果要在with代码块外访问文件的内容,可在with代码块内将文件的各行存储在一个列表中,并在with代码块外使用该列表	
    

    read():读取文件所有内容,并返回到一个“字符串str”中
    readline():读取文件第一行,返回到“字符串”中
    readlines():从文件中读取每一行,并将其存储在一个列表中

    rstrip:删除 string 字符串末尾的空格.
    lstrip:截掉 string 左边的空格
    strip:在 string 上执行 lstrip()和 rstrip()
    
  23. 异常

    try_except_else——finally:try内执行可能发生异常的语句,except捕获该异常,若没有发生异常则执行else内语句。finally无论是否发生异常,都执行改代码

    ZeroDivisionError:除数为0时报异常

    NotImplementedError:尚未实现的方法

    IndentationError:缩进错误

    writelines() 方法用于向文件中写入一序列的字符串。

    write() 方法用于向文件中写入指定字符串。

  24. 存储数据

    使用 json 存储数据

    json.dump(参数1,参数2):使用dump()存储数据,参数1为要存储的数据,参数2为接收数据的文件

    json.load(参数):将数据读取到内存文件中

    with open(file_name) as fn:
     number=json.load(fn)
    print(number)
    
  25. 函数随记

    Python join() 方法用于将序列中的元素以指定的字符连接生成一个新的字符串。

    str.join(sequence),sequence—要连接的元素序列

    strlist = input("输入单词:").split(',')
    strlist.sort()
    print(','.join(strlist))
    输入单词:without,hello,bag,world
    bag,hello,without,world
    
    

    isdigit(a):如果字符串只包含数字则返回 True 否则返回 False…

  26. 看到就记

    1.python输出函数加上r的作用:即print(r" “)
    主要的原因是为防止转义,保证r后面的内容全文输出。
    r就是保持字符串原始值的意思,在我们输入路径的时候,总会出现斜杠“\”,这个符号在python 语言中具有转义的作用,加上r就是避免转义,直接原文输出。
    2.python输出函数加上f的作用:即print(f” ")
    主要作用就是格式化字符串,加上f以后,{“变量/表达式”},花括号里的变量和表达式就可以使用了。

    	print(r'123\n'*3)
    	print(r'123\n'*3)
    	
    	for i in range(1,9):
    	print(f"本次输出的平方为:{i*i}")
        	本次输出的平方为:1
    		本次输出的平方为:4
    		本次输出的平方为:9
    		本次输出的平方为:16
    		本次输出的平方为:25
    		本次输出的平方为:36
    		本次输出的平方为:49
    		本次输出的平方为:64
    
  27. re模块使 Python 语言拥有全部的正则表达式功能

    re.match():尝试从起始位置匹配一个模式,如果不是起始位置,则返回NONE

    	print(re.match('www','www.baidu.com').span())
    	print(re.match('baidu','www.baidu.com'))
    	print(re.match('baiu','www.baidu.com'))
    	(0, 3)
    	None
    	None
    	
    

    re.search扫描整个字符串并返回第一个成功匹配的

    print(re.search('www', 'www.baidu.com').span())
    print(re.search('baidu', 'www.baidu.com'))
    print(re.search('baiu', 'www.baidu.com'))
    (0, 3)
    <re.Match object; span=(4, 9), match='baidu'>
    None
    
    

    re.match和re.search的区别:match只匹配开头,search匹配整个字符串

    re.sub():用于替换字符串中的匹配项–re.sub(pattern, repl, string, count=0, flags=0)
    pattern:正则表达式
    repl:替换的字符串,可以是一个函数
    string:要被替换的字符串

    test = "#$%abcd !"
    print(re.sub('[!@#$% ]', "", test))
    abcd
    

    re.findall(pattern, string, flags=0):找到正则表达式中的所有匹配子串,并返回一个列表
    pattern.findall(string[, pos[, endpos]])
    pattern 匹配模式。
    string 待匹配的字符串。
    pos 可选参数,指定字符串的起始位置,默认为 0。
    endpos 可选参数,指定字符串的结束位置,默认为字符串的长度。

    
    test1 = '123test456'
    pattern = re.compile(r'\d+')  # 匹配数字
    print(pattern.findall(test1, 0, 8))
    print(re.findall(r'\d+', test1))
    ['123', '4']
    ['123', '456']
    
    

    re.finditer(pattern, string, flags=0):与re.findall()类似,不过re.findite是返回迭代器
    re.split(pattern, string[, maxsplit=0, flags=0]):split 方法按照能够匹配的子串将字符串分割后返回列表

    
    test2 = 'test,abcd,test'
    print(re.split('(\W+)', test2))
    print(re.split('\W+', test2))
    print(re.split('\w+', test2, 2))
    ['test', ',', 'abcd', ',', 'test']
    ['test', 'abcd', 'test']
    ['', ',', ',test']
    

    正则表达式:
    ^:匹配字符串的开头
    $:匹配字符串的结尾
    . 匹配任意字符串,出了换行符
    […]:用来匹配一组字符
    [^…]:一组字符取反
    \w:匹配字母数字和下划线
    \W:匹配非字母数字和下划线
    \s:匹配任意空白字符
    \S:匹配任意非空白字符
    \d:匹配任意数字
    \D:匹配任意非数字
    \A:匹配字符串开始
    \z:匹配字符串结束
    \Z:匹配字符串结束,如果存在换行,则匹配换行前的结束
    [0-9]、[A-Z]、[a-z]、[0-9a-zA-z]

    使用正则表达式匹配IP地址
    \b((25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(25[0-5]|2[0-4]\d|[01]?\d\d?)\b
    在这里插入图片描述

  28. 二维数组的创建

    建立一个X行Y列的二维数组

    
    	multlist = [[0 for a in range(Y)] for b in range(X)]
    	[[0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0]]
    

    #-- coding = utf-8 --
    #@Time : ${DATE} ${TIME}
    #@Author : YZC
    #@File : ${NAME}.py
    #@Software : ${PRODUCT_NAME}

  29. 获取lisi列表中出现次数最多的元素

       	a = ['a','a','a','b','c','d']
       	maxele = max(a,key=a.count)
       	print(maxele)
    
  30. 使用Bool函数将数值或字符串转换成布尔值:bool(0),bool(0.0)=false,其它为true;字符串为空时false,其它为true

  31. a%b:当两个数中有负数时,相当于a-(a//b)*b; {-3%4----> -3-(-3//4)*4=-3-(-1)*4=1}

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值