美文网首页
Python基础知识

Python基础知识

作者: 叶子完小 | 来源:发表于2019-08-02 11:32 被阅读0次
    • 选择最简单的可行性方案,易读懂;
    • Python根据缩进来判断代码行与前一个代码行的关系。

    命名和和使用用

    在Python中使用变量时,需要遵守一些规则和指南。违反这些规则将引发错误,而指南旨在让你编写的代码更容易阅读和理解。请务必牢记下述有关变量的规则。

    • 变量名只能包含字母、数字和下划线。变量名可以字母或下划线打头,但不能以数字打头,例如,可将变量命名为message_1,但不能将其命名为1_message。
    • 变量名不能包含空格,但可使用下划线来分隔其中的单词。例如,变量名greeting_message可行,但变量名greetingmessage会引发错误。
    • 不要将Python关键字和函数名用作变量名,即不要使用Python保留用于特殊用途的单词,如print (请参见附录A.4)。
    • 变量名应既简短又具有描述性。例如,name比n好,student_name比s_n好,name_length比length_of_persons_name好。
    • 慎用小写字母l和大写字母O,因为它们可能被人错看成数字1和0。
      要创建良好的变量名,需要经过一定的实践,在程序复杂而有趣时尤其如此。随着你编写的程序越来越多,并开始阅读别人编写的代码,将越来越善于创建有意义的变量名。
    • 注意 就目前而言,应使用小写的Python变量名。在变量名中使用大写字母虽然不会导致错误,但避免使用大写字母是个不错的主意。

    2.变量和简单数据类型

    2.2 变量命名和使用

    在Python中使用变量时,需要遵守一些规则和指南。违反这些规则将引发错误,而指南旨在让你编写的代码更容易阅读和理解。请务必牢记下述有关变量的规则。

    • 变量名只能包含字母、数字和下划线。变量名可以字母或下划线打头,但不能以数字打头,例如,可将变量命名为message_1,但不能将其命名为1_message。
    • 变量名不能包含空格,但可使用下划线来分隔其中的单词。例如,变量名greeting_message可行,但变量名greetingmessage会引发错误。
    • 不要将Python关键字和函数名用作变量名,即不要使用Python保留用于特殊用途的单词,如print (请参见附录A.4)。
    • 变量名应既简短又具有描述性。例如,name比n好,student_name比s_n好,name_length比length_of_persons_name好。
    • 慎用小写字母l和大写字母O,因为它们可能被人错看成数字1和0。
      要创建良好的变量名,需要经过一定的实践,在程序复杂而有趣时尤其如此。随着你编写的程序越来越多,并开始阅读别人编写的代码,将越来越善于创建有意义的变量名。
    • 注意 就目前而言,应使用小写的Python变量名。在变量名中使用大写字母虽然不会导致错误,但避免使用大写字母是个不错的主意。

    2.3 字符串

    • 自带函数:大写/小写/去字符尾部空格【变量.rstrip()】/开头字母大写【变量.title()】;

    2.4 数字

    • 整数 :支持加减乘除运算;
    • 浮点数 :带小数点的都称为浮点数;
    • str(int或浮点变量)避免类型错误;
    
    

    2.5 注释

    注释用井号(# )标识。井号后面的内容都会被Python解释器忽略;

    3.列表简介

    列表由一系列按特定顺序排列的元素组成。你可以创建包含字母表中所有字母、数字0~9或所有家庭成员姓名的列表;也可以将任何东西加入列表中,其中的元素之间可以没有 任何关系。鉴于列表通常包含多个元素,给列表指定一个表示复数的名称(如letters 、digits 或names )是个不错的主意。 在Python中,用方括号([] )来表示列表,并用逗号来分隔其中的元素。

    • 索引从0而不是1开始;
    • 索引-1 总是返回最后一个列表元素
    #按字母顺序排列
    cars = ['bmw', 'audi', 'toyota', 'subaru'] 
     cars.sort() print(cars)
    
    #按与字母顺序相反的顺序排列列表元素,为此,只需向sort() 方法传递参数reverse=True 。
    cars = ['bmw', 'audi', 'toyota', 'subaru'] 
    cars.sort(reverse=True) print(cars)
    

    3.1 操作列表

    3.1.1 常用函数

    #range()让你轻松生成一系列数字;
    #要创建数字列表,可使用函数list() 将range() 的结果直接转换为列表;
    intArray = list(range(1, 10, 2))
    print(intArray)
    #统计函数,轻松找到数字列表的最小值/最大值/总和
    min(intArray)
    max(intArray)
    sum(intArray)
    

    3.1.2 列表解析

    #两个星号(** )表示乘方运算
    #列表解析 将for 循环和创建新元素的代码合并成一行,并自动 附加新元素
    squares = [value ** 2 for value in range(1, 5)]
    print(squares)
    

    3.2.1 列表的一部分:切片

    players = ['charles', 'martina', 'michael', 'florence', 'eli']
    print(players[1:4])
    #负数索引返回离列表末尾相应距离的元素,示例为最后3个;
    print(players[-3:])
    #复制整个列表
    players_cp = players[:]
    print(players_cp) 
    

    3.3 元组

    Python将不能修改的值称为不可变的 ,而不可变的列表被称为元组,使用圆括号。 列表非常适合用于存储在程序运行期间可能变化的数据集。列表是可以修改的,使用方括号;

    • 虽然不能修改元组的元素,但可以给存储元组的变量赋值。
    dimensions = (200, 50) 
    print("Original dimensions:") 
    for dimension in dimensions: 
      print(dimension) 
    
    dimensions = (400, 100) 
    print("\nModified dimensions:") 
    for dimension in dimensions: 
      print(dimension)
    

    3.4 设置代码格式

    • 每级缩进都使用四个空格。对你使用的文本编辑器进行设置,使其在你按Tab键时都插入四个空格;
    • 每行都不要超过80字符。对你使用的编辑器进行设置,使其在第80个字符处显示一条垂直参考线。
    • 不要在程序文件中过多地使用空行。

    4. if语句

    • Python中检查是否相等时区分大小写
    if car == 'Audi':
    if car.lower() == 'Audi':
    
    • 判断两个值是否不等,可结合使用惊叹号和等号(!= )
    • 检查多个条件使用and 或 or;
    age > 21 and age1 >21
    
    • 检查特定值是否包含在列表中可使用关键字 in;
    requested_toppings = ['mushrooms', 'onions', 'pineapple'] 
     >>>'mushrooms' in requested_toppings 
    True 
    >>> 'pepperoni' in requested_toppings 
    False
    
    • 确定特定的值未包含在列表可使用关键字not in;

    4.2 if语句

    • if-else 语句
    • if-elif-else结构

    在条件测试的格式设置方面,PEP 8提供的唯一建议是,在诸如== 、>= 和<= 等比较运算符两边各添加一个空格,例如,if age < 4: 要比if age<4: 好。

    5. 字典

    • 字典可存储的信息量几乎不受限制,在Python中,字典 是一系列键—值对 。每个键都与一个值相关联,你可以使用键来访问与之相关联的值。与键相关联的值可以是数字、字符串、列表乃至字典。事实上,可将 任何Python对象用作字典中的值。
    • 在Python中,字典用放在花括号{} 中的一系列键—值对表示;
    • 键—值 对是两个相关联的值。指定键时,Python将返回与之相关联的值。键和值之间用冒号分隔,而键—值对之间用逗号分隔。
    alien = {'color': 'green',  'points': 5}
    #要获取与键相关联的值,可依次指定字典名和放在方括号内的键
    print(alien['color'])
    

    5.1 添加键—值对

    字典是一种动态结构,可随时在其中添加键—值对。要添加键—值对,可依次指定字典名、用方括号括起的键和相关联的值。

    alien_0 = {} 
    alien_0['color'] = 'green' 
    alien_0['points'] = 5 
    print(alien_0)
    

    5.2 修改字典中的值

    要修改字典中的值,可依次指定字典名、用方括号括起的键以及与该键相关联的新值。

    alien_0 = {'color': 'green'}
    print("The alien is " + alien_0['color'] + ".")
    alien_0['color'] = 'yellow'
    print("The alien is now " + alien_0['color'] + ".")
    

    5.3 删除键—值对

    对于字典中不再需要的信息,可使用del 语句将相应的键—值对彻底删除。使用del 语句时,必须指定字典名和要删除的键。

    # 删除的键—值对永远消失了
    del alien['color']
    print(alien)
    

    5.4 遍历键值对

    遍历字典时,键—值对的返回顺序也与存储顺序不同。Python不关心键—值对的存储顺序,而只跟踪键和值之间的关联关系;

    # 遍历字典所有键-值对;
    for key, value in alien.items():
        print("\nkey: " + key)
        print("value: " + str(value))
    
    #遍历字典所有的键
    for key in alien.keys():
        print("\nkey: " + key)
    #遍历字典所有的值
    for value in alien.values():
        print("\nvalue: " + str(value))
    

    5.5 嵌套

    需要将一系列字典存储在列表中,或将列表作为值存储在字典中,这称为嵌嵌套套 。

    字典列表

    #嵌套 字典列表
    alien0 = {'color': 'red', 'point': 5}
    alien1 = {'color': 'red', 'point': 5}
    alien2 = {'color': 'red', 'point': 5}
    
    aliens = [alien0, alien1, alien2]
    #打印出来
    print(aliens)
    for ala in aliens:
        print(ala)
    # 创建一个用于存储外星人的空列表
    aliens = []
    # 创建30个绿色的外星人
    for alien_number in range(30):
        new_alien = {'color': 'green', 'points': 5, 'speed': 'slow'}
        aliens.append(new_alien)
    #显示前五个外星人
    for alien in aliens[:5]:
        print(alien)
        print("...")
    #修改前三个外星人
    for alien in aliens[0:3]:
        if alien['color'] == 'green':
            alien['color'] = 'yellow'
            alien['speed'] = 'medium'
            alien['points'] = 10
        elif alien['color'] == 'yellow':
            alien['color'] = 'red'
            alien['speed'] = 'fast'
            alien['points'] = 15
    # 显示创建了多少个外星人
    print("Total number of aliens: " + str(len(aliens)))
    

    在字典中存储列表

    #在字典中存储列表
    pizza = {
        "crust": "tick",
        "topping": ["mushrooms", "extra cheese"],
    }
    print("You ordered a" + pizza["crust"] + "-crust pizza" + "with the following toppings:")
    for topping in pizza["topping"]:
        print("\t" + topping)
    

    在字典中存储字典

    users = { 'aeinstein': { 'first': 'albert', 'last': 'einstein', 'location': 'princeton', },
              'mcurie': { 'first': 'marie', 'last': 'curie', 'location': 'paris', }, }
    for username, user_info in users.items():
        print("\nUsername: " + username)
        full_name = user_info['first'] + " " + user_info['last']
        location = user_info['location']
        print("\tFull name: " + full_name.title())
        print("\tLocation: " + location.title())
    

    6 用户输入

    函数input() 让程序暂停运行,等待用户输入一些文本。获取用户输入后,Python将其存储在一个变量中,以方便你使用。

    7 循环

    #while
    i = 1 
    while i < 6:
        print(i)
        i += 1
    #for 
    for x in [1,2,3]:
        print(x)
    

    8. 函数

    8.1 传递实参

    #默认值-animal_type='dog'
    #可使用默认值来让实参变成可选的,这样使用函数的人就只需在必要时才提供额外的信息。
    def describe_pet(pet_name, animal_type='dog'): 
      """显示宠物的信息""" 
      print("\nI have a " + animal_type + ".") 
      print("My " + animal_type + "'s name is " + pet_name.title() + ".") 
    
    #位置实参-Python必须将函数调用中的每个实参都关联到函数定义中的一个形参。为此,最简单的关联方式是基于实参的顺序。这种关联方式被称为位置实参 。
    describe_pet('willie','cat')
    
    #关键字实参-是传递给函数的名称—值对。你直接在实参中将名称和值关联起来了,因此向函数传递实参时不会混淆;
    describe_pet(pet_name='willie')
    
    #函数
    def fun(a, b=1, *c, **d):
        print(f'a={a}\nb={b}\nc={c}\nd={d}')
    
    fun(1,2,3,4,x=1,y=5) ##*表示可变长度的; 遇到=解析为词典;
    
    

    *还可以参数拆箱

    #制定函数返回值类型
    def f(x,y) -> str:
        print(f'x={x}')
    

    8.3 传递任意数量的实参

    #形参名*toppings 中的星号让Python创建一个名为toppings 的空元组,并将收到的所有值都封装到这个元组中
    def make_pizza(*toppings): """打印顾客点的所有配料""" print(toppings) make_pizza('pepperoni') make_pizza('mushrooms', 'green peppers', 'extra cheese')
    

    9. 类

    #类class
    class Stu:
        name=""
        def study(self,*c):
            print(c)
            return c
    
    stu1 = Stu() #实例化
    stu1.study(1,2,3)
    
    • 不需要实例化调用的类方法和类变量
    class Teacher:
        @classmethod   #类方法
        def share(cls, *c):
            print(c)
    
    Teacher.share((1, 2, 3))
    

    10.包Package

    from com.ging.luna.demo.Student  import Stu
    stu2 = Stu()
    stu2.study(1,4,5)
    
    for p in sys.path:  #查看系统路径
       print(p)
    

    11.文件

    相关文章

      网友评论

          本文标题:Python基础知识

          本文链接:https://www.haomeiwen.com/subject/jkrgrctx.html