• 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将不会考虑这个父类方法, 而只关注你在子类中定义的相应方法。 

  • 相关阅读:
    mojoportal学习——文章翻译之SmartCombo
    windows froms 程序打包 (转载)
    [笔记]LCD1602 Display Experiment
    [笔记] JLink V8固件烧录指导
    [笔记]NiosII之Count Binary
    [笔记]DE2115 LCD1602字符的显示
    [笔记]What is HDBaseT
    [笔记]Inrush Current Case
    [笔记]远传中继的实现
    [笔记]RunningLED Experiment
  • 原文地址:https://www.cnblogs.com/cmybky/p/11772438.html
Copyright © 2020-2023  润新知