Python基础总结

输入
  • 获取用户输入使用 input( )方法
模块
  • 模块——可以将模块视为扩展,通过将其导入实现Python功能的扩展,导入关键字使用 import
执行脚本
  • 从cmd执行Python脚本
  • 在脚本的第一行表明解释器的位置即可在Linux中不必显示的调用Python解释器而执行脚本
注释
  • Python中使用#或三引号(’’’ ‘’’)注释
字符串
  • 单引号字符串以及对引号转义

    • 引号必须成对使用
    • 想要实现引号转义需要使用反斜杠(\) (方法一)
    • 想要不对字符串进行转义可以使用长字符串(方法二)
    • 想要不对字符串进行转义可以使用原始字符串(方法三)
  • 字符串拼接

    • 字符串拼接操作——将它们相加
  • str、repr和长字符串

    • print(repr(‘Hello \nworld’))将输出原始字符串
    • print(’’‘This is the content of str’’’)将输出原始字符串

Python的内建数据结构

  • 序列Python中内置了多种序列——列表、元组、集合、字典
  • Python支持一种数据结构对基本概念——容器
    • 容器是可以包含其他对象对对象
    • 两种主要的容器是序列(元组、列表)和映射(字典)
    • 有一种既不是序列也不是映射对容器(集合)
通用的序列操作
  • ①索引

    • 使用正数从左往右(从0开始)
    • 使用负数从右往左(从-1开始)
  • ②切片

    • 使用切片访问特定范围内的元素
    • 切片的形式是一个区间,左闭右开
      • 例子
      str = 'hello'
      print(str[2:4])
      
    • 切片的参数
      • 起始索引
      • 终止索引
      • 步长
  • ③序列相加

    • 使用‘+’实现序列拼接的操作
  • ④乘法

    • 将序列乘n则重复创建此序列n次
    • 空列表和初始化
      • Python中使用None表示空值
      • 创建一个容量为10的空列表
  • ⑤成员资格

    • 成员资格对判断结果是布尔类型(true和false)
  • ⑥长度、最大值、最小值

    • len()
    • max()
    • min()
列表
  • 函数list()可以将任何序列作为参数(实际上list是一个类)
  • 要将列表转换为字符串可以使用拼接函数 ‘’.join(somelist)
  • 列表的基本操作
    • ①修改列表,给元素赋值
      • somelist[index] = value
    • ②删除元素
      • del somelist[index]
    • ③给切片赋值
      • somelist[start:end] = values or valuelist
列表方法
  • append()——将一个对象附加到列表到末尾
  • clear()——就地清空列表到内容(将列表清空而不是将其中元素置为None)
  • copy()——复制列表(常规的list2 = list1指向的是同一个列表,要想指向不同的列表需要复制)
  • cout()——计算指定元素在列表中出现了多少次
  • extend()——同时追加多个值到列表结尾,返回一个新的序列(此操作并非就地操作,不改变原列表)
  • index()——在列表中查找指定值第一次出现的索引
  • insert()——将一个对象插入到列表
  • pop()——从列表中删除一个元素并返回这个元素(不传入参数默认删除和返回最后一个元素)
    • pop()方法是唯一既修改列表又返回一个非None值的方法
  • remove()——删除第一个指定值的元素,此方法修改列表但不返回值
  • reverse()——翻序排列列表
  • sort()——对列表排序
元组:不可修改的序列
  • 元组是不可修改的
  • 元组没有index和count方法
字符串
  • 字符串的基本操作

    • ①索引
    • ②切片
    • ③乘法
    • ④成员资格检查
    • ⑤长度
    • ⑥最大值
    • ⑦最小值
  • 设置字符串格式

    • 使用转换说明符(%s、%.3f等)
    • 使用模板字符串
      from string import Template
      tmpl = “Hello my name is $name, I’m $age years old”
      tmpl.substitute(name=“Li”, age=12)
    • 使用format函数
      tmpl = “Hello my name is {}, I’m {} years old”.format(“Li”, 12)
      tmpl = “Hello my name is {0}, I’m {1} years old”.format(“Li”, 12)
      tmpl = “Hello my name is {name}, I’m {age} years old”.format(age=12, name=“Li”)
  • 字符串方法

    • center() 通过在字符串两端添加字符(默认为空格)使字符串居中
    • find()在字符串中查找子串,找到返回子串第一个字符对索引
    • join()——用于合并序列的元素
    • lower()——返回字符串对小写版本
    • title()——词首大写
    • capwords()——词首大写
    • replace()——将指定字符串替换
    • split()——将字符串拆分成序列
    • translate()——字符串替换方法,与replace不同对是它只能进行单字符替换,优势在于能够同时处理多个字符,因而效率比replace高
字典
  • 字典由键及其相应的值组成,一个键值对称为一个项
  • 函数dict()可以从其他映射或键值对序列创建字典,也可以使用关键字实参调用这个函数
  • 字典的基本操作
    • len(d)——返回字典d的长度(键值对的数量)
    • d[k]——获取键为k的字典元素对值
    • d[k] = v——关联键值
    • del d[k]——删除键为k的项
    • k in d——检查字典d中是否包含键为k的项
  • 字典的基本性质
    • 键的类型可以是任何不可变的类型(整数、浮点数、实数、字符串、元组)
    • 自动添加
    • 成员资格检查k in d查找的是键,v in l 查找的是值
  • 字典方法
    • format_map()将字符串格式设置功能用于字典
    • clear()——就地清空字典,不返回值(或者说返回None)
    • copy()——返回一个新字典,与原字典有相同的键值(这个方法执行浅复制)
      使用深拷贝可以引用deepcopy模块的deepcopy方法
      from copy import deepcopy
    • fromkeys()——使用指定的键创建一个空字典,值都是None,或添加参数指定值
    • get()——get()方法为访问字典提供了宽松对环境,访问对键不在字典中时不会报错而是返回None,可以指定键不存在时返回对值
    • items()——返回一个包含所有字典项的列表,每个元素都是键值对的形式,字典项排序不确定
    • keys()——返回一个字典视图,包含指定字典中的键
    • pop()——获取与指定键相关联的值,并将该键值对删除
    • popitem()——类似于list.pop,但list.pop弹出列表中的最后一个元素,而popitem随机的弹出一个字典项,因为字典项是不确定的没有最后一项的概念
    • setdefault()——获取指定键相关的值,还在字典中不包含指定的键时,在字典中添加指定对键值对
    • update()——使用一个字典中的项来更新另一个字典,也就是说将另一个字典中的键值对与原字典合并,如果键名相同则进行替换
    • values()——返回一个由字典中对值组成的字典视图,不同于keys,values返回对视图可能包含重复的值
其他语句
  • 迭代字典
    d = {‘x’:1, ‘y’:2, ‘z’:3}
    for key in d:
    print(key, 'corresponds to ', d[key])

    for key value in d.items():
      print(key, 'corresponds to', value)
    
  • 并行迭代
    names = [‘anne’, ‘beth’, ‘george’, ‘damon’]
    ages = [12, 45, 32, 102]
    for i in range(len(names)):
    print(names[i], ‘is’, ages[i], ‘years old’)

    for name, age in zip(name, ages):
      print(names[i], 'is', ages[i], 'years old')
    
  • 迭代时获取索引
    for string in strings:
    if ‘xxx’ in string:
    index = string.index(string)
    strings[index] = ‘[censored]’

    index = 0
    for string in strings:
      if 'xxx' in string:
        strings[index] = '[censored]'
      index += 1
    
    for index, string in enumerate(strings):
      if 'xxx' in string:
        strings[index] = '[censored]'
    
生成式 生成器
  • [x * x for x in range(10)]
  • [(x,y) for x in range(5) for y in range(5,10)]
  • 字典生成器
    squares = {i:"{} squared is {}".format(i, i**2) for i in range(10)}

三人行 Python三个语句——pass、exec、eval

  • pass——占位符

  • exec()——将字符串作为代码执行
    exec(‘hello world’)

    • 但是,调用exec时需要向它传递一个命名空间——用于放置变量的地方,否则代码将污染命名空间,修改其他变量
      from math import sqrt
      scope = {}
      exec(‘sqrt = 1’, scope)
      sqrt(4)
      scope[‘sqrt’]
  • eval()——计算用字符串表示对Python表达式对值,并返回结果

面向对象函数
  • callable(object)——判断对象是否是可调用的(是否是函数或方法)
  • getattr(object, name[,default])——获取属性的值,提供默认值
  • hasattr(object, name)——判断对象是否有指定属性
  • isinstance(object, class)——判断对象是否是指定类的实例
  • issubclass(A, B)——判断A是否是B对子类
  • random.choice(sequence)——从一个非空序列中随机选择一个元素
  • setattr(object, name, value)——将对象的属性设置为指定值
  • type(object)——返回对象对类型
常用标准库
  • sys
    • argv——命令行参数,包括脚本名
    • exit([arg])——退出当前程序,可通过可选参数指定返回值或错误信息
    • modules——一个字典,将模块名映射到加载的模块
    • path——一个列表,包含要在其中查找模块的目录名称
    • platform——一个平台标识符如:sunos win32
    • stdin——标准输入流,一个类似文件的对象
    • stdout——标准输出流, 一个类似文件的对象
    • stderr——标准错误流, 一个类似文件的对象
  • os
    • environ——包含环境变量的映射
    • system(command)——在子shell中执行操作系统命令
    • sep——路径中使用的分隔符
    • pathsep——分隔不同路径对分隔符
    • linesep——行分隔符(\n, \r或\n\r)
    • urandom(n)——返回n个字符对加密随机数据
  • time
    • asctime——将时间元组转换为字符串
    • localtime([secs])——将秒数转换为表示当地时间的日期元组
    • mktime(tuple)——将时间元组转换为当地时间
    • sleep(secs)——休眠
    • strptime(string[, format])——将字符串转换为时间元组
    • time()——当前时间(从新纪元开始后对秒数,以UTC为准)
  • random
    • random()——返回一个0~1的随机实数
    • getrandbits(n)——以长整数方式返回n个随机的二进制位
    • uniform(a, b)——返回一个a~b的随机实数
    • randrange([start], stop, [step])——从range(start, stop, step)中随机选择一个数
    • choice(seq)——从序列seq中随机选择一个元素
    • shuffle(seq[, random])——就地打乱序列seq
    • sample(seq, n)——从序列seq中随机选择n个不同的元素
  • re
    • compile(pattern[, flags])——根据包含正则表达式的字符串创建正则对象
    • search(pattern, string[, flags])——在字符串中查找
    • match(pattern, string[, flags])——在字符串开头匹配
    • split(pattern, string[, maxsplit=0])——根据模式分隔字符串
    • findall(pattern, string)——返回一个列表,包含所有与模式匹配的字符串
    • sub(pat, repl, string[, count=0])——字符串替换
    • escape(string)——对字符串中所有正则表达式特殊字符都进行转义
    • group([group1, …])——获取与给定子模式匹配的子串
    • start([group])——返回与给定编组匹配的子串的起始位置
    • end([group])——返回与给定编组匹配的子串的终止位置(与切片一样,不包含终止位置)
    • span([group])——返回与给定编组匹配的子串的起始和终止位置
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值