Python基础

第一章

    import this

第二章2.4
    strip: 用来去除头尾字符、空白符(包括\n、\r、\t、' ',即:换行、回车、制表符、空格)
    lstrip:用来去除开头字符、空白符(包括\n、\r、\t、' ',即:换行、回车、制表符、空格)
    rstrip:用来去除结尾字符、空白符(包括\n、\r、\t、' ',即:换行、回车、制表符、空格)
    .title() 所有单词的首个字母转化为大写

    Python使用两个乘号表示乘方运算 3 ** 2 = 9
    

    字符串中使用整数时,需要指出你希望python将这个整数用作字符串可使用str(),将非字符串表示为字符串

    注释
    注释用#标识

第3章 列表
    --列表用[]表示列表
    bicycles = ['trek', 'cannondale', 'redline', 'specialized']
    输出
    print(bicycles) 打印所有
    print(bicycles[0]) 返回第一个
    bicycles[-1]       返回最后一个
    修改
    bicycles[0] = 'ducati'   修改第一个值
    添加
    bicycles.append('ducati')  在列表末尾添加元素
    bicycles.insert(0, 'ducati') 在索引0处添加空间,将值存储到这个地方,已有的元素右移一位
    删除
    del bicycles[0] 删除了列表bicycles 中的第一个元素——'honda'
    ss = bicycles.pop()  弹出列表最后一个值,并且拿到弹出的值
    bicycles.pop(1)  弹出索引为1的元素
    bicycles.remove('trek')
    不知道要从列表中删除的值所处的位置,如果只知道要删除的元素的值,可使用remove()
    remove()只删除第一个指定的值,如果删除的值在列表中出现多次,就需要使用循环来判断师傅删除所有

    --列表排序
    永久排序sort()
    cars = ['bmw', 'audi', 'toyota', 'subaru']  cars.sort()
    ['audi', 'bmw', 'subaru', 'toyota'] 按字母顺序排序
    cars.sort(reverse=True) 反向排序
    临时排序sorted(cars)
    反转排列顺序永久性修改 cars.reverse()
    获取列表长度 len(cars)

第4章 遍历列表
    magicians = ['alice', 'david', 'carolina']
    for magician in magicians:
        print(magician

    创建数值列表
    for value in range(1,6):    
        print(value)
    --1 2 3 4

    使用range()创建数值列表
    numbers = list(range(1,6))
    print(numbers)
    --[1, 2, 3, 4, 5]

    使用range()指定步长
    even_numbers = list(range(2,11,2))
    print(even_numbers)
    [2, 4, 6, 8, 10]

    ❶ squares = []
    ❷ for value in range(1,11):
    ❸     square = value**2
    ❹     squares.append(square)
    ❺     print(squares)

    最大最小求和
    digits = [1, 2, 3, 4, 5, 6, 7, 8, 9, 0]
    >>> min(digits) 0
    >>> max(digits) 9
    >>> sum(digits) 45

    --切片 【索引 包前不包后】
    players = ['charles', 'martina', 'michael', 'florence', 'eli']
    print(players[0:3])     0-3 这将输出 0、1、2的元素
    ['charles', 'martina', 'michael']


    print(players[1:4])  提取2-4个元素
    ['martina', 'michael', 'florence']

    如果没有指定开始自动从列表开头开始
    players[:4]

    如果要提取从第3个元素到列表末尾的所有元素,可将起始索引指定为2 ,并省略终止索引:
    print(players[2:])
    ['michael', 'florence', 'eli']

    打印最后三个
    print(players[-3:])

    遍历切片
    players = ['charles', 'martina', 'michael', 'florence', 'eli']  
    print("Here are the first three players on my team:")
    for player in players[:3]:
        print(player.title())
    >>> Charles Martina Michael

    复制列表 [:]
    my_foods = ['pizza', 'falafel', 'carrot cake']
    friend_foods = my_foods[:]

4.5元组
    列表适合用于存储在程序运行期间可能变化的数据集,列表是可以修改的
    元组适合用于一系列不可以修改的元素,元组是不可变的,不可变的列表成为元组

    --定义元组
    dimensions = (200,50)
    print(dimensions[0])  
    print(dimensions[1])

    修改元组【会报错】
    dimensions = (200, 50)
    dimensions[0] = 250

    Traceback (most recent call last):  File "dimensions.py", line 3, in <module>                dimensions[0] = 250TypeError: 'tuple' object does not support item assignment

    遍历元组
    dimensions = (200, 50)for dimension in dimensions:
        print(dimension)

    修改元组中的元素是不合法的
    但是修改元组变量是可以的

    dimensions = (200, 50)
    print("Original dimensions:")  
    for dimension in dimensions:
          print(dimension)

    dimensions = (400, 100)
    print("\nModified dimensions:")  
    for dimension in dimensions:
        print(dimension)

第五章 if语句

    简单示例1
    cars = ['audi', 'bmw', 'subaru', 'toyota']  
    for car in cars:
        if car == 'bmw':
            print(car.upper())
        else:      
            print(car.title())
    
    知识点:在python中检查是否相等时区分大小写

    知识点:and 与 or
    age_0 >= 21 and age_1 >= 21
    age_0 >= 21 or age_1 >= 21

    知识点:检查特定值是否包含在列表中
    requested_toppings = ['mushrooms', 'onions', 'pineapple']
    'mushrooms' in requested_toppings

第六章 字典
    alien_0 = {'color': 'green', 'points': 5}
    print(alien_0['color'])
    >>>green

    创建一个空字典
    alien_0 = {}
    alien_0['color'] = 'green'
    alien_0['points'] = 5
    print(alien_0)
    >>>{'color': 'green', 'points': 5}

    修改字典中的值
    alien_0['color'] = 'yellow'

    删除键值对
    del alien_0['points']

    遍历字典
    user_0 = {      'username': 'efermi',      'first': 'enrico',      'last': 'fermi',      }❶
    for key, value in user_0.items():
        print("\nKey: " + key)
        print("Value: " + value)

    注意:无序

    for name, language in favorite_languages.items():❷
        print(name.title() + "'s favorite language is " + language.title() + ".")
    name = key
    language = value

    只遍历字典中的键
    for name in favorite_languages.keys():
        print(name.title())

    按顺序遍历字典中的所有值
    for name in sorted(favorite_languages.keys()):
        print(name.title() + ", thank you for taking the poll.")

    只返回字典中的所有制
    for language in favorite_languages.values():
        print(language.title()

第7章 用户输入和while循环

    input()函数:让程序暂停运行,等待用户输入一些文本,获取用户输入后,Python将其存储在一个变量中,以方便使用
    message = input("Tell me something, and I will repeat it back to you: ")
    print(message)

    Tell me something, and I will repeat it back to you: Hello everyone!
    Hello everyone!

    使用函数input()来获取数值输入

    while循环简介
    current_number = 1
    while current_number <= 5:
        print(current_number)
        current_number += 1
    >>>1 2 3 4 5

    判断退出
    message = ""
    while message != 'quit':
        message = input(prompt)
        if message != 'quit':        
            print(message)

    标志退出
    active = True
    while active:
        message = input(prompt)   
        if message == 'quit':     
            active = False
        else:     
            print(message)

    break退出循环
    while True:
        city = input(prompt)      
        if city == 'quit':    
            break  
        else:     
            print("I'd love to go to " + city.title() + "!")

    continue的使用跳过当前循环
    current_number = 0  
    while current_number < 10:
        current_number += 1      
        if current_number % 2 == 0:
            continue
        print(current_number)
第8章 函数

    定义函数
    def greet_user(username):
        """显示简单的问候语"""    
        print("Hello!"+username.title())
    greet_user()

    形参默认值 等号两边不要有空格
    def describe_pet(pet_name, animal_type='dog'):

    其他方式的函数调用
    # 一条名为Willie的小狗
    describe_pet('willie')
    describe_pet(pet_name='willie')
    # 一只名为Harry的仓鼠
    describe_pet('harry', 'hamster')
    describe_pet(pet_name='harry', animal_type='hamster')
    describe_pet(animal_type='hamster', pet_name='harry')

    返回值
    def get_formatted_name(first_name, last_name):
        """返回整洁的姓名"""
            full_name = first_name + ' ' + last_name   
            return full_name.title()
    musician = get_formatted_name('jimi', 'hendrix')  
    print(musician)

    传递任意数量的实参 形参*toppings中的星号让PythonPython创建一个名为topping的空元组
    def make_pizza(*toppings):
        """打印顾客点的所有配料"""
        print(toppings)
    make_pizza('pepperoni')
    make_pizza('mushrooms', 'green peppers', 'extra cheese')

    导入模块
    import pizza

    导入模块中特定的函数
    from module_name import function_0, function_1, function_2

    使用as给函数指定别名
    from pizza import make_pizza as mp

    使用as给模块指定别名
    import pizza as p

    导入模块中的所有函数
    from pizza import *

第9章 创建和使用类
    创建类
    class Dog():
        def __init__(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!")
    方法__init__()定义成了包含三个形参,self name 和 age 。在这个方法的定义中,形参self必不可少
    还必须位于其他形参的前面,为何必须在方法中定义包含形参self呐?

    
    
    中间没有做笔记


    9.4.5 导入模块中的所有类

    不推荐使用这种导入方式,不知道导入了哪些类,不知道导入的类中是否有和本类冲突的类
    from module_name import *

    from collections import OrderedDict
    
    9.5 Python标准库

    创建一个空的有序字典
    from collections import OrderedDict
    favorite_languages = OrderedDict()

    favorite_languages['jen'] = 'python'  
    favorite_languages['sarah'] = 'c'  
    favorite_languages['edward'] = 'ruby'  
    favorite_languages['phil'] = 'python'
    for name, language in favorite_languages.items():   
        print(name.title() + "'s favorite language is " +language.title() + ".")

    这是一个很不错的类,它兼具列表和字典的主要优点(在将信息关联起来的同时保留原来的顺序)。

    代码风格:即将类名中的每个单词的首字母都大写,而不使用下划线。实例名和模块名都采用小写格式,并在单词之间加上下划线

第10章

    10.1 读取文件
    读取整个文件
    with open('pi_digits.txt') as file_object:    
        contents = file_object.read()    
        print(contents)

    关键字with 在不再需要访问文件后将其关闭    

    相比于原始文件,该输出唯一不同的地方是末尾多了一个空行,read()到达文件末尾时返回一个空字符串,而将这个字符串显示出来时
    就是一个空行,要删除多出来的空行,可以在print语句可以用 rstrip:用来去除结尾字符、空白符

    with open('pi_digits.txt') as file_object:    
        contents = file_object.read()    
        print(contents.rstrip())

    逐行读取
    filename = 'pi_digits.txt'
    with open(filename) as file_object:
        for line in file_object:      
        print(line)

    3.1415926535  
    
    8979323846  
    
    2643383279
    逐行读取发现空白行更多了,?因为在这个文件中,每行的末尾都有一个看不见的换行符

    --创建一个包含文件各行内容的列表
    filename = 'pi_digits.txt'  
    with open(filename) as file_object:     
        lines = file_object.readlines()
    for line in lines:      
        print(line.rstrip())

    10.2  写入文件
    filename = 'programming.txt'
    with open(filename, 'w') as file_object:   
        file_object.write("I love programming.")
    指定读取模式 读取模式 ('r' )、写入模式 ('w' )、附加模式 ('a' )、读加写的模式('r+' )
    如果你省略了模式实参,Python将以默认的只读模式打 开文件。
    只能字符串写入。要将数值数据必须先使用函数str() 将其转换为字符串格式

    写入多行
    write() 不会在你写入的文本末尾添加换行符,两行内容挤在一起
    如果要换行,需要在结尾加上 file_object.write("I love creating new games.\n")

    附加内容。

    with open(filename, 'a') as file_object:
    不会在返回文件对象前清空文件
    写入到文件的行都将添加 到文件末尾。如果指定的文件不存在,Python将为你创建一个空文件。

    【异常】

    try:
        print(5/0)
    except ZeroDivisionError:   
        print("You can't divide by zero!")
    else:          
        print("执行成功")
    依赖于try 代码块成功执行的代码都放在else 代码块中;在这个示例中,如 果除法运算成功,我们就使用else 代码块来打印结果

    filename = 'alice.txt'
    try:
        with open(filename) as f_obj:        
        contents = f_obj.read()
    except FileNotFoundError:    
        msg = "Sorry, the file " + filename + " does not exist."    
        print(msg)

    发生异常的时候让python一声不吭
    在except中使用pass 可在代码块中使用它来让Python 什么都不要做

    【分析文本】

    【存储数据】
    使用json.dump()和jsonjson.load()
    使用json.dump()来存储数据
    使用json.load()来加载树据

    存储数据
    import json
    numbers = [2,3,5,7,11,13]
    filename = 'numbers.json'
    with open(filename,'w') as f_obj:
        json.dump(numbers, f_obj)

    读取数据
    import json
    filename = 'numbers.json'
    with open(filename) as f_obj:
        numbers = json.load(f_obj)
    print(numbers)


第11章 测试代码

    import unittest  
    from name_function import get_formatted_name

    class NamesTestCase(unittest.TestCase):      
    """测试name_function.py"""      
    def test_first_last_name(self):          
        """能够正确地处理像Janis Joplin这样的姓名吗?""" ❷         
        formatted_name = get_formatted_name('janis', 'joplin') ❸         
        self.assertEqual(formatted_name, 'Janis Joplin')  
    unittest.main()
   

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值