python学习笔记-基础


#=====================python笔记=====================
学习环境:python3.7 + JetBrains PyCharm 2018.2.6 x64
根据自身学习情况进行记录

#=====================注释=====================
# 注释的写法:
#单行注释
'''
第一行注释
第二行注释
'''

#=====================变量=====================
#数字类型的变量表示
二进制:0b0001;八进制:0o0767;十六进制0xFFFF

#=====================运算符=====================
    a = 9+3-2 # +,-跟正常算术运算符一模一样
    a = 9 * 4 # 乘号用星号(*)代替
    a = 9/4 # 除号用斜杠(/)代替,得到的是2.25
    a = 9 % 4 # % 取余运算
    a = 9 // 4 # // 表示取商运算,也叫地板除
    a = 9 ** 4 # ** 表示幂运算

#逻辑运算的短路
#逻辑表达式中,前一个表达式如果能运算出最终结果,则不在向下计算
  a = True or xxxxxxxxxxx

#=====================参数=====================
# 参数混合调用:定义的时候一般找普通参数,关键字参数,收集参数tuple,收集参数dict
    def func(a, b=1, *l, **d)

#收集参数的解包问题
    arg = ([1, 2, 3, 4],) # args的表示形式是字典内一个list类型的元素
#list、tuple需要使用"*"进行解包;dict 使用"**"进行解包

#=====================函数文档=====================

#在函数内部开始的第一行使用三引号字符串定义符
# 查看函数文档
    help(stu)
    stu.__doc__

#=====================变量作用域=====================
全局(global): 在函数外部定义
局部(local):在函数内部定义
    globals();locals()  #通过globals和locals显示出局部变量和全局变量
    
#字符串当成表达式来执行
    eval("print('')")函数:返回执行后的结果
    exec("print('')")函数:不返回结果

#=====================list=====================
    l = [a, b, c] 或 l = list() #list的创建
    del l, #list对象的删除

#list分片:
#数组默认增长值为1,最后一个数字的下标是-1
#list的值截取:list[1:5];list[:5];list[1:];list[:];list[-5:-1];list[-1:-5:-1]
#列表遍历:算数+嵌套+for+条件表达式
    c = [  10*m + n for m in a for n in b if m+n < 250]

#list相关的常用函数
    len(l), max(l), min(l),
    l("123") #转化成list类型
    l.count("111") #查找指定元素在列表中的数量
    l.append("111") #list的最后一位追加指定元素
    l.insert(3,111) #list的指定位置插入指定元素,大量消耗资源
    l.pop() #list删除最后一位元素,返回最后一位元素
    l.remove("111") #list删除指定的元素
    l.index("111") #指定元素在list中的索引位置,如果需要查找的数字是多个,则返回第一个
    del l[1] #list删除指定位置的元素
    l.reverse() #list的翻转(同地址)
    l.clear() #list的清空
    l.extend(list2) #list的扩展(同地址),也可使用"+","*"操作(不同地址)
    list2 = list1.copy() #list的浅拷贝(不同地址的list)(浅拷贝:只拷贝一层地址),传值(地址不同)

#=====================tuple=====================
#是一个不可更改的list。
    t = (1,) 或 t = 1 或 t = 1,2,3,4 #list的创建,注意:tuple中只有一个整数表示
    t = () #定义一个空的tuple
#tuple相关的常用函数
    tuple([1,2,3,4,5]) #转化成tuple类型
#list具有的一些操作基本一致,比如索引,分片(区别:tuple切片可以超界),序列相加,相乘,成员资格操作等

#双层元组的遍历
    t = ((1,2,3), (2,3,4),(3,4,5))
    for k,m,n in t:
        pass

#=====================set=====================
#一堆确定的"无序"的"唯一"的数据
    s = set() 或 s = {a, b, c} #set的创建,"{}"中一定要有元素,否则set为dict类型
#集合内部数据元素具有唯一性,可以用来排除重复数据
#集合内的数据,str, int, float, tuple,冰冻集合等,即内部只能放置可哈希数据
#len,min,max,copy与list用法相同
    s.add("111") #set追加指定元素
    s.clear() #set的清空
    s.remove("111") #remove:移除指定的元素,直接改变原有值,如果要删除的值不存在,报错。
    s.discard("111") #discard:移除集合中指定的值,跟remove一样,如果要删除的值不存,不报错。
    s.pop() #随机移除一个元素,返回这个元素
# 集合函数
# intersection: 交集
# difference:差集,也可以使用"-"操作
# union: 并集
# issubset: 检查一个集合是否为另一个子集
# issuperset: 检查一个集合是否为另一个超集
    s = frozenset() #冰冻集合是不可以进行任何修改的集合

#=====================dict=====================
#dict的创建
    d = dict()
    d = {}
    d = {1:"1", 2:"2", 3="3"}
    d = dict({1:"1", 2:"2", 3="3"})
    d = dict(a=1, b=2, c=3) 
    d = dict( [("one",1), ("two",2), ("three",3)])
#字典是序列类型,但是是无序序列,所以没有分片和索引
#字典中的数据每个都有键值对组成,即kv对
#key: 必须是可哈希的值,比如int,string,float,tuple, 不能是 list,set,dict 不行
#value: 任何值
    a = d["one"] #dict的访问
    d["two"] = 2 #dict的修改
    del d["two"]    #dict元素的删除
#dict在in,not in中检测的是key值
---与list、tuple、set不同的特殊用法
    for k,v in dict.item()
#dict的生成
    d = {k:v for k,v in dist.item() if v % 2 == 0}
#dict的相关函数
    len(),max(),min(),dict()
    str(d) #返回字符串
    d.items() #返回字典的键值对组成的元组格式,同理keys(),values()
    d.get() #根据指定键返回相应的值(没有返回None),与dict["one"]区别。
# fromkeys: 使用指定的序列作为键,使用一个值作为字典的所有的键的值
# 注意fromkeys两个参数的类型
# 注意fromkeys的调用主体
    l = ["eins", "zwei", "drei"]
    d = dict.fromkeys(l, "111")

#=====================书写规范=====================
#定义及调用是的参数写法:函数内"="前后不加空格,","后加空格
    def function(a=a, b=0, c="11"):
        pass
    function(a=a, b=0, c="11")
#定义变量的写法:"="前后加空格
    a = "aa"
    b = 0

#=====================补充=====================
#python无"switch-case"语句

#range[1,5],list[1,6],包含左,不包含右
#randint是特例,他左右都包含

    a,b = b,a #python的变量交换
    type() #返回"()"内的类型
    id() #返回id号,以判断引用地址
    
#思考:a = b之后,a和b的id号一样,为什么再b赋新值后,a和b的值不一样?
#解答:传址(复杂变量)与传值的区别

#可哈希数据与不可哈希数据:
#可变类型的数据不可哈希,如list,字典:同值不同址,不同值同址
#数值、字母、字符串、数字、元组不可变:同值同址,不同值不同址
 

猜你喜欢

转载自blog.csdn.net/maopc1987/article/details/85232105
今日推荐