zoukankan      html  css  js  c++  java
  • python总结

    以前学python的时候一直在网上找资料,看别人博客上的内容,学的东西感觉好乱,直到看了一本书:python编程从入门到精通,虽然基础知识是我一天看完的,但是还是感觉豁然开朗,如果对于初学者,可以看看这本书,边看,边做上边的练习题,感觉真的很棒!!由于记忆力不好,还是想把看到的知识总结一下,以备以后,查看,,,

    1,字符串:

    name="ada lovelace"

    • 首字母大写 name.title()
    • 全部转化为大写 name.upper()
    • 全部转化为小写 name.lower()
    • 合并字符串 "hello" + name

    name=" ada lovelace "

    • 删除结尾空白:name.rstrip()
    • 删除开头空白:name.lstrip()
    • 删除开头和结尾空白:name.strip()

    str():

    age=23

    • message="happy"+age+"rd birthday!" #有错误
    • message="happy"+str(age)+"rd birthday!" #正确形式

    2.列表

    color=['red','yellow','blue',black]

    • 访问列表元素:color[0]  #下标从 0开始,不是从1开始
    • 修改列表中的元素:color[1]="green"
    • 在列表中添加元素:color.append("white")
    • 在列表中插入元素:color.insert("orange")
    • 从列表中删除元素:del color[0]
    •   color.pop() #删除最后尾部的列表中的元素
    •   color.pop(1) #删除指定位置上的元素
    •   color.remove("red")

    列表排序:

    •   使用sort()方法对列表进行永久性排序:color.sort(recerse=True)
    •   使用sorted()方法对列表进行临时排序:
    •     print(color)
    •         print(sorted(color))
    •     print(color)
    • 倒序打印列表:print(color.reverse())
    • 确定列表的长度:len(color)
    • 循环遍历整个列表:
    •   for c in color:
    •     print(c)

    数值列表 

    •   range()函数
    •     for value in rang(1,4): #从1开始到4结束
    •       print(value)
    •   创建数值列表:
    •     number=list(range(1,11,2))
    •   统计数值列表中的最大值:max(number)
    •   统计数值列表中的最小值:min(number)
    •   统计数值列表中的值的和:sum(number)
    •   数值列表的demo:
    •     squares=[value**2 for value in range(1,11)]
    •     print(squares)

    使用列表中的一部分--切片

    •   print(color[0:3]) #从索引位置0开始到索引位置3结束  
    •   print(color[-3:]) #从索引位置倒数第三个到最后
    • 遍历切片:
    •    for c in color[:3]:
    •     print(c)

    复制列表:  

    •   color1=color[:]#此时color和color1两个不是同一个列表,只是列表中的元素相同
    •   color1=color#此时color和color1两个是同一个列表

    3 元组:

    •  元组和列表的区别在于:列表可以改变列表元素,而元组不可以
    •  在外形上的区别是:元组是用小括号标识,列表是用中括号标识 

    定义元组:

      dimensions=(200,50)

      print(dimensions[0])

    遍历元组中的所有值:

      for dimension in dimensions:

        print(dimension)

    修改元组变量:  

      dimensions=(200,50)

      for dimension in dimensions:

        print(dimension)

      dimensions=(200,55)

      for dimension in dimensions:

        print(dimension)

    4.字典

    • 字典是一系列的键值对:alient_0={"color":"red","points":"5"}
    • 访问字典中的值:alient_0["color"]
    • 添加键值对:alient_0["x_posisiotn"]=25
    • 修改字典中的值:alient_0["color"]="yellow"
    • 删除键值对:del alient_0["color"]
    • 由类似对象组成的字典:
    •    alient_0={
    •     "color":"red",
    •     "points":"5"
    •    }
    • 遍历字典中所有的键值对:for key,value in alient_0.items():
    • 遍历字典中的所有的键:for name in alient_0.keys(): 或 for name in alient_0:
    • 按顺寻遍历字典中的所有的键:for name in sorted(alient_0.keys()):
    • 遍历字典中的所有值,用set集合来去重:for name in set(alient_0.vlaues()):

    字典和字典,字典和列表,列表和列表,可以嵌套使用。。。

    5函数

    • 当列表作为函数的参数时,为了不改变列表的值,可以使传递的参数是列表的副本:function_name(list_name[:])
    • 传递任意数量的参数:def make_pizza(*toppings)
    • 结合使用位置实参和任意数量实参:def make_pizza(size,*toppings)
    • 使用任意数量的关键字实参:def make_pizza(first,last,*toppings)

    函数和模块:模块为扩展名为.py的文件,函数位于模块中

    • 导入整个模块:import pizza
    •        pizza.make_pizza(12,"apple")
    • 倒入特定的函数:from pizza import make_pizza
    • 使用as给函数指定别名:from module_name import function_namr as fn
    • 使用as给模块指定别名:import module_name as mn
    • 导入模块中的所有函数:from pizza import *
    """8-3 T恤 : 编写一个名为make_shirt() 的函数, 它接受一个尺码以及要印到T恤上的字样。 这个函数应打印一个句子, 概要地说明T恤的尺码和字样。
    使用位置实参调用这个函数来制作一件T恤; 再使用关键字实参来调用这个函数。
    8-4 大号T恤 : 修改函数make_shirt() , 使其在默认情况下制作一件印有字样“I love Python”的大号T恤。 调用这个函数来制作如下T恤: 一件印有默认字样的大号T
    恤、 一件印有默认字样的中号T恤和一件印有其他字样的T恤( 尺码无关紧要) 。
    8-5 城市 : 编写一个名为describe_city() 的函数, 它接受一座城市的名字以及该城市所属的国家。 这个函数应打印一个简单的句子, 如Reykjavik is in
    Iceland 。 给用于存储国家的形参指定默认值。 为三座不同的城市调用这个函数, 且其中至少有一座城市不属于默认国家。
    """
    def make_shirt(size,words):
        print("大小是:"+ size+" 字样是:"+words)
    
    def make_shirt1(size,word="I love Python"):
        print("大小是:"+ size+" 字样是:"+word)
    
    def describe_city(city,country="China"):
        print(city + "is in "+country)
    
    
    make_shirt("大号","apple")
    
    make_shirt1("大号")
    make_shirt1("中号")
    make_shirt1("小号","是你")
    
    describe_city("Reykjavik","Iceland")
    describe_city("baoding")
    describe_city("shenyang")
    
    """8-1 消息 : 编写一个名为display_message() 的函数, 它打印一个句子, 指出你在本章学的是什么。 调用这个函数, 确认显示的消息正确无误。
    8-2 喜欢的图书 : 编写一个名为favorite_book() 的函数, 其中包含一个名为title 的形参。 这个函数打印一条消息, 如One of my favorite books is
    Alice in Wonderland 。 调用这个函数, 并将一本图书的名称作为实参传递给它。"""
    
    
    """8-6 城市名 : 编写一个名为city_country() 的函数, 它接受城市的名称及其所属的国家。 这个函数应返回一个格式类似于下面这样的字符串:
    "Santiago, Chile"
    至少使用三个城市-国家对调用这个函数, 并打印它返回的值。
    8-7 专辑 : 编写一个名为make_album() 的函数, 它创建一个描述音乐专辑的字典。 这个函数应接受歌手的名字和专辑名, 并返回一个包含这两项信息的字典。 使
    用这个函数创建三个表示不同专辑的字典, 并打印每个返回的值, 以核实字典正确地存储了专辑的信息。
    给函数make_album() 添加一个可选形参, 以便能够存储专辑包含的歌曲数。 如果调用这个函数时指定了歌曲数, 就将这个值添加到表示专辑的字典中。 调用这个
    函数, 并至少在一次调用中指定专辑包含的歌曲数。
    8-8 用户的专辑 : 在为完成练习8-7编写的程序中, 编写一个while 循环, 让用户输入一个专辑的歌手和名称。 获取这些信息后, 使用它们来调用函
    数make_album() , 并将创建的字典打印出来。 在这个while 循环中, 务必要提供退出途径。"""
    
    def city_country(city,country="China"):
        print(city + ", "+country)
    
    def make_album(singer,zhuanji,num=""):
        person={"歌手":singer,"专辑":zhuanji}
        if num:
            person["数量"]=num
        return person
    
    
    
    
    city_country("shanghai")
    city_country("newyue","USA")
    a=make_album('jimi', 'hendrix', num=27)
    print(a)
    b=make_album('jimi', 'hendrix')
    print(b)
    
    print("---------------")
    
    while True:
        print("
    Please tell me your name:")
        print("(enter 'q' at any time to quit)")
        singer = input("歌手: ")
        if singer == 'q':
            break
        zhuanji = input("专辑: ")
        if zhuanji == 'q':
            break
        person=make_album(singer,zhuanji)
        print(person)
    
    """8-9 魔术师 : 创建一个包含魔术师名字的列表, 并将其传递给一个名为show_magicians() 的函数, 这个函数打印列表中每个魔术师的名字。
    8-10 了不起的魔术师 : 在你为完成练习8-9而编写的程序中, 编写一个名为make_great() 的函数, 对魔术师列表进行修改, 在每个魔术师的名字中都加入字样“the
    Great”。 调用函数show_magicians() , 确认魔术师列表确实变了。
    8-11 不变的魔术师 : 修改你为完成练习8-10而编写的程序, 在调用函数make_great() 时, 向它传递魔术师列表的副本。 由于不想修改原始列表, 请返回修改后的
    列表, 并将其存储到另一个列表中。 分别使用这两个列表来调用show_magicians() , 确认一个列表包含的是原来的魔术师名字, 而另一个列表包含的是添加了字
    样“the Great”的魔术师名字。"""
    
    lists = ['iphone case', 'robot pendant', 'dodecahedron']
    completed_lists = []
    
    def show_magicians(completed_lists):
        for list in completed_lists:
            print("name is :"+list)
    
    show_magicians(lists)
    
    def make_great(lists,completed_lists):
        while lists:
            temp=lists.pop()
            completed_lists.append("the Great "+temp)
    
    
    def make_great1(lists,completed_lists):
        while lists:
            temp=lists.pop()
            completed_lists.append("the Great "+temp)
    
    make_great1(lists[:],completed_lists)
    show_magicians(lists)
    show_magicians(completed_lists)
    
    
    """8-12 三明治 : 编写一个函数, 它接受顾客要在三明治中添加的一系列食材。 这个函数只有一个形参( 它收集函数调用中提供的所有食材) , 并打印一条消息, 对顾客
    点的三明治进行概述。 调用这个函数三次, 每次都提供不同数量的实参。
    8-13 用户简介 : 复制前面的程序user_profile.py, 在其中调用build_profile() 来创建有关你的简介; 调用这个函数时, 指定你的名和姓, 以及三个描述你的键-值
    对。
    8-14 汽车 : 编写一个函数, 将一辆汽车的信息存储在一个字典中。 这个函数总是接受制造商和型号, 还接受任意数量的关键字实参。 这样调用这个函数: 提供必不可
    少的信息, 以及两个名称—值对, 如颜色和选装配件。 这个函数必须能够像下面这样进行调用:
    car = make_car('subaru', 'outback', color='blue', tow_package=True)
    打印返回的字典, 确认正确地处理了所有的信息。"""
    
    def make_pizza(*toppings):
        """打印顾客点的所有配料"""
        print(toppings)
    make_pizza('pepperoni')
    make_pizza('mushrooms', 'green peppers', 'extra cheese')
    
    def make_car(color, tow_package, **car_info):
        car={}
        car['color']=color
        car['tow_package']=tow_package
        for key,value in car_info.items():
            car[key]=value
        print(car)
    make_car('albert', 'einstein',location='princeton',field='physics')

    6类

    class Dog():
        """一次模拟小狗的简单尝试"""
        def __init__(self, name, age):
            """初始化属性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!")

    __init__()类似于java中的构造方法,形参self必不可少,还必须放在其他的形参的前边。为何必须在方法定义中包含形参self 呢? 因为Python调用这个__init__() 方法来创建Dog 实例时, 将自动传入实参self 。 每个与类相关联的方法调用都自动传递实参self , 它是一个指向实例本身的引用, 让实例能够访问类中的属性和方法。 我们创建Dog 实例时, Python将调用Dog 类的方法__init__() 。 我们将通过实参向Dog() 传递名字和年龄; self 会自动传递,因此我们不需要传递它。 每当我们根据Dog 类创建实例时, 都只需给最后两个形参( name age ) 提供值。

    调用方法:

    my_dog = Dog('willie', 6)
    my_dog.sit()
    my_dog.roll_over()

    继承

    class Car():
        """一次模拟汽车的简单尝试"""
        def __init__(self, make, model, year):
            self.make = make
            self.model = model
            self.year = year
            self.odometer_reading = 0
        def get_descriptive_name(self):
            long_name = str(self.year) + ' ' + self.make + ' ' + self.model
            return long_name.title()
        def read_odometer(self):
            print("This car has " + str(self.odometer_reading) + " miles on it.")
        def update_odometer(self, mileage):
            if mileage >= self.odometer_reading:
                self.odometer_reading = mileage
            else:
                print("You can't roll back an odometer!")
        def increment_odometer(self, miles):
            self.odometer_reading += miles
    
    class ElectricCar(Car):
        """电动汽车的独特之处"""
        def __init__(self, make, model, year):
            """初始化父类的属性"""
            super().__init__(make, model, year)
         self.battery_size = 70
       def describe_battery(self):
      
    """打印一条描述电瓶容量的消息"""
      
    print("This car has a " + str(self.battery_size) + "-kWh battery.")
    my_tesla
    = ElectricCar('tesla', 'model s', 2016) print(my_tesla.get_descriptive_name())

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

    重写父类方法:

      可在子类中定义一个这样的方法, 即它与要重写的父类方法同名。 这样,Python将不会考虑这个父类方法, 而只关注你在子类中定义的相应方法。 

     

  • 相关阅读:
    使用C#实现DHT磁力搜索的BT种子后端管理程序+数据库设计(开源)
    便携版WinSCP在命令行下同步文件夹
    ffmpeg (ffprobe)分析文件关键帧时间点
    sqlite删除数据或者表后,回收数据库文件大小
    ubuntu 20.04下 freeswitch 配合 fail2ban 防恶意访问
    ffmpeg使用nvenc编码的结论记录
    PC版跑跑卡丁车 故事模式 亚瑟传说章节 卡美洛庆典 2阶段 心灵之眼 攻略
    There was an error loading or playing the video
    Nvidia RTX Voice 启动报错修复方法
    火狐浏览器 关闭跨域限制
  • 原文地址:https://www.cnblogs.com/nolonely/p/6715900.html
Copyright © 2011-2022 走看看