python基础知识总结

python基础知识总结

知识总结来源于《Python编程从入门到实践》,偏向于个人的快速记忆和查看。

if __name__ == '__main__':
    # 变量和简单数据类型
    
    # 1、变量,直接赋值,无需声明具体的类型,自动识别
    mesage = "my nane is LiHua"
    print(mesage)
    
    # 2、字符串
    # str.title()首字母大写|str.upper()全大写|str.lower()全小写
    print(mesage.title())
    # + 可以拼接字符串
    # 格式化输出
    print('{0} {1} {0}'.format('hello','world')) # 带编号  hello world hello
    print('{a} {tom} {a}'.format(tom='hello',a='world'))  # 带关键字 world hello world
    # 进阶用法
    	# (1)< (默认)左对齐、> 右对齐、^ 中间对齐、= (只用于数字)在小数点后进行补齐

		# (2)取位数“{:4s}”、"{:.2f}"等
    	# 更多用法:https://www.cnblogs.com/lovejh/p/9201219.html
        
    
    # 3、删除空白 str.lstrip()删除开头空白|str.rstrip()删除末尾空白|str.strip()删除两端空白  删除只是暂时的
    list1 = ['hello','wolcome','good']
    # -----------------------------------------------------------
    # 4、列表: []表示,逗号分隔,可以直接print
    # 使用下标访问元素,负号表示倒数第几个
    #修改(直接赋值修改) 添加list.append()  指定位置插入list.insert(index,str2)
    # 永久删除元素 del list[index] 暂时删除元素list.pop(index) 根据值删除元素list.remove(str)
    
    # 5、list.sort()对列表元素按字母进行排序,list.sort(reverse=True)按字母的逆序进行排序
    print(sorted(list1,reverse=True))# 对列表进行逆序排序
    # 遍历list表---------------------------
    print(sorted(mesage))# 对字符串进行排序
    list2 = sorted(mesage)# 将字符串分割为一个一个字母的列表
    for i in list2:
        print(i)
    # 遍历list表---------------------------
    
    # 6、倒转列表list.reverse(),不是逆序,而是倒转
    # 7、确定列表的长度,len(list)
    
    # 8、遍历列表 for list in lists:
    
    # 9、创建数字列表
    numbers = list(range(1,5))
    print(numbers)
    # numbers = list(range(1,11,2))其中2为步长
    
    # 10、对数字进行简单的统计计算:min()|max()|sum()
    
    # 11、列表解析
    squares = {value**2 for value in range(1,6)}
    print(squares)
    
    # 12、切片list[index1:index2]从第index1到index2的元素,[ : ]这样前后省略可以复制列表,复制列表不能以赋值的方式,其指向的是同一个
    # 计算大小 listdemo = []   listdemo.__sizeof__()
    
    # 13、元组:列表适用于变化的数据集,而元组适用于不变的数据集
    # 定义元组:dimensions = (100,39)
    # 元组不能改变,但是可以重新进行指向
    # 将列表转为元组:tuple(list)   将区间转换成元组:tuple(range)
    
    # 列表与元组的区别:
    # 1、元组作为很多内置函数和序列类型方法的返回值存在,必须用元组
    # 2、元组比列表的访问和处理速度更快,在元素不会变化的情况下尽量使用元组
    # 3、元组可以在映射(和集合的成员)中当做“键”使用,而列表不行
    
    # 14、if语句 if str == 'str':  可以和and or  in  进行组合检查多个条件
    
    # 字典----------------------------------
    # 15、字典{key1:val1,ksy2:val2}
    # 键值可以是整数、字符串或者元组,只要符合唯一和不可变的特性;
    # 对应的值可以是 Python 支持的任意数据类型
    # 添加键值对 alien[new_key] = new_val
    # 通过 get(key) 方法获取字典的value
    # 修改用赋值,删除用del
    # 遍历 for k,v in alien.items():   for k in alien.keys():    for v in alien.valuse():
    # 按字母顺序遍历所有建 for k in sorted(alien.keys()):
    # 去掉字典中重复出现的value,for v in set(alien.values()):
    # 嵌套:列表中元素为字典,字典中存储列表(需要指定key),字典中存储字典(需要指定key)
    
    # copy() 方法用于返回一个具有相同键值对的新字典
    # update() 方法可使用一个字典所包含的键值对来更新己有的字典。
    # pop() 方法用于获取指定 key 对应的 value,并删除这个键值对 a.pop(key)
    # setdefault()方法,根据key获取对应值,如果key不存在就创建一个默认值
    
    # 使用字典格式化字符串
    # 字符串模板中使用key
	# temp = '教程是:%(name)s, 价格是:%(price)010.2f, 出版社是:%(publish)s'
	# book = {'name':'Python基础教程', 'price': 99, 'publish': '慧科云'}
	# 使用字典为字符串模板中的key传入值
	# print(temp % book)
    
    # 字典的数据类型为 dict,我们可使用 dir(dict) 来查看该类包含哪些方法
    # 字典----------------------------------
    
    # 16、input输入
    #mesage2 = input("please input your willing :")
    #print(mesage2)
    # 遇到数字输入使用int进行强转
    
    # 17、while循环,break、continue结合使用
    # 与if一样,可以结合数组、字典使用
    
    # 18、函数--------------------------------
    # 定义函数:def fun_name(para1,para2):    调用函数时,实参的顺序很重要
    # 位置实参、关键字实参、默认值的综合使用(空值是为可选实参)
    # 返回值:返回简单值、返回字典
    # 传递列表:def fun(list_name):   禁止函数修改列表:def fun(list_name[:])
    # 传递任意数量的实参,并将这些实参封装到元组中:def fun(*top):
    # 传递任意数量的关键字实参:def fun(**top)字典
    # 导入模块import xxx as xx 指定别名,导入特定函数form xxx import xxx  as xxxx指定别名  (*)导入全部函数
    # 函数--------------------------------
    
    # 19、面对对象-----------------------------
    # 创建和使用类
    class Dog():
        """一次模拟小狗的简单尝试"""
        def __init__(self,name,age):  # 构造方法,每一个类都必须有的,而且第一个参数是self指向本身
            """初始化属性name和age"""
            self.name = name
            self.age = age

        def sit(self):
            """模拟小狗被命令时蹲下"""
            print(self.name.title() + " is now sitting.")

        def roll_over(self):
            """吗模拟小狗被命令时打滚"""
            print(self.name.title() + " rolled over!")

    my_dog = Dog('while',6)
    print("my dog name is " + my_dog.name.title() + '.')  # 使用点访问属性,调用方法
    print("my dog age is " + str(my_dog.age) + 'years old.')

    # 类中的每一个属性都必须赋初值
    # 修改属性的值:直接修改属性的值  通过内部定义方法进行修改
    # 继承;创建子类实例时,子类首先要做的是将从父类继承下来的值进行赋值
    class Red_Dog(Dog):
        """继承Dog"""
        def __init__(self,name,age):
            """初始化父类的方法"""
            super().__init__(name,age)
            self.color = 'blue'      # 子类特有的属性

        def call(self):              # 子类特有的方法
            print(self.name.title + " is calling")

        def roll_over(self):        # 重写
            """重写父类的方法"""
            print(self.name.title() + " 被命令时不打滚。")

    my_red_dog = Red_Dog('hdsdf',3)
    print(my_red_dog.name + str(my_red_dog.age) + my_red_dog.color)

    # 可以将一个类的实例作为另一个类的属性,只需在第二个类的构造方法里面实例化第一个类
    # 导入类from car import Car1,Car2  一个模块中可以包含多个类,也可以导入多个类 也可导入整个模块或模块中的所有类
    # 面对对象-----------------------------
    
    # 20、文件-----------------------------
    # 读取整个文件
    """
    with open('file.txt') as file_object:
        contents = file_object.read()
        print(contents)#读取全部内容
        for line in file_object:
            print(line)#一行一行的进行读取
        lines = file_object.readlines()将文件读取,并存储到lines文件
        contents会多读出一段空行,可以使用rstrip()去掉
    """
    # 在windows中文件路径是\而不是/

    # 写入文件
    """
    with open(file_name,'w') as file_object;
        file_object.write("I love programming.")
    r读,w覆盖写,a附加,r+可读可写
    python只能将文本文件写入到文件
    如果希望每一个字符串都独占一行,需要在write()后面加换行符
    """
    # 文件--------------------------------
    
    # 21、异常----------------------------
    # try-except处理异常
    try:
        print(5/0)
    except ZeroDivisionError:
        print("You can't divide by zero")
    # try-except-else  赖于try块的成功的代码都可以放到else中
    # FileNotFoundError:使用文件时常见的问题是找不到文件
    # title.split()根据字符串建立单词列表
    # pass:失败时一声不吭
    # 异常--------------------------------
    # 22、存储数据----------------------------
    # json.dump()接受两个参数,要存储的数据及可用于存储数据的对象
    """
    import json
    numbers = [2,3,5,7,8]
    filename = 'numbers.json'
    with open(filename,'w') as f_obj:
        json.dump(numbers,f_obj)
    """
    # json.load()读取文件
    """
    import json
    filename = 'numbers.json'
    with open(filename) as f_obj;
        numbers = json.load(f_obj)
    """
    #  存储数据----------------------------
    
    # 23、None
    # None 是 NoneType 数据类型的唯一值
    # 我们不能再创建其它 NoneType 类型的变量,但是可以将 None 赋值给任何变量。如果希望变量中存储的东西不与任何其它值混淆,就可以使用 None
    
    # 24、调用函数变量
    # Python 的函数也是一种值:所有函数都是 function 对象,这意味着可以把函数本身赋值给变量,就像把整数、浮点数、列表、元组赋值给变量一样。
	# 当把函数赋值给变量之后,接下来程序也可通过该变量来调用函数。
    # 函数还可以作为形参和返回值
    
    # python闭包
    # 闭包,又称闭包函数或者闭合函数,其实和前面讲的嵌套函数类似,不同之处在于,闭包中外部函数返回的不是一个具体的值,而是一个函数。一般情况下,返回的函数会赋值给一个变量,这个变量可以在后面被继续执行调用
    #闭包函数,其中 exponent 称为自由变量
    def nth_power(exponent):
        def exponent_of(base):
            return base ** exponent
        return exponent_of # 返回值是 exponent_of 函数
    square = nth_power(2) # 计算一个数的平方
    cube = nth_power(3) # 计算一个数的立方
    print(square(2))  # 计算 2 的平方
    print(cube(2)) # 计算 2 的立方
    
    # Python闭包的closure属性,exponent 参数存储地址
    #查看 __closure__ 的值
	print(square.__closure__)
    
    # 25、Python lambda表达式(匿名函数)及用法
    # 在定义函数的时候,不想给函数起一个名字。这个时候就可以用lambda来定义一个匿名函数
	# 变量名= lambda 参数:表达式(block)
	# 参数:可选,通常以逗号分隔的变量表达式形式,也就是位置参数
	# 表达式:不能包含循环、return,可以包含if...else...
    # 传递多个参数  func = lambda x, y, z: x + y + z
    func = lambda x, y : x if x > y else y
    # 相同表达
    def func(x, y):
    if x > y:
        return x
    else:
        return y
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值