Python:《Python编程:从入门到实践》全书概要

目录

一、快捷键

二:常用函数或方法

三、列表

四、元组

五、字典

六、列表和字典的嵌套

七:函数

八:类 

九、文件操作

十、测试

十一、学习书籍


 

一、快捷键

 重复上次输入语句:Alt+P(IDLE中)

二:常用函数或方法

编程语言中基础的内容已省略

注意(书写格式):::方法前的“.”代表对执行对象的操作(如MyBooks.title()),没有“.”代表执行对象在方法括号()内(如strip(MyBooks))。

1、合并字符串:+     制表符:\t     换行符:\n

2、.title():大写首字母     .upper():全大写     .lower():全小写      

     strip( ):删除字符串开头和末尾的空白     lstrip( ):删除开头空白      rstrip( ):删除右边空白

     str( ):将非字符串转换为字符串

3、Python语言的书写格式是缩进

4、if-elif-else:超过两种情况的判断(elif代码块可多次使用,else代码块可省略)(语句后面加冒号“:”)

5、input():输入     int():输入数值

6、for循环是遍历列表和字典的有效方式,但是它不能修改;while循环可以在遍历列表和字典的同时进行修改。

三、列表

使用中扩折号"[]",列表第一个元素索引为0,以此类推;最后一个元素索引可以为-1。

num = [2, 5, 1, 6, 4]

1、.append():在列表末尾添加元素     .insert( , ):在列表任何位置插入元素     

     del语句   :删除列表指定元素     .pop():删除列表末尾元素(并将删除的元素存储在新的变量中),在括号中添加元素角标可以对应删除     .remove():删除第一个指定值的元素(若有多个相同的值,需要循环)

     .sort():对列表进行永久性排序(数字大小、首字母顺序)     .sort(reverse=True):反排序     sorted():排序显示,不影响原列表结构     sorted( ,reverse=True):反排序

     .reverse():反转列表

     len( ):列表长度     min/max/sum():列表中元素最小值/最大值/总和

     range( , ):随机生成指定范围内的数字     list():转化为列表     list(range( , )):插件数字列表

     assert():(断言)用于判断一个表达式,在表达式条件为 false 的时候触发异常。

2、遍历列表:for循环(句尾加冒号":");列表中元素的平方也用for循环。

     切片: [ : ]:类似于matlab中的格式(没有指定索引值,默认开头或者结尾)。切片表示法“[:]”也直接表示创建列表的副本

     关键词in:创建一个列表后,检查其中是否包含特定的值,返回Ture/False(有in的表达一般都对应有not in的表达)

     关键词not in:检查特定值是否不包含在列表中

3、if语句

     检测列表元素(先用foe循环遍历)

     确定列表不是空

     if语句中将列表名用在条件表达式中时,当列表有元素时返回True,列表为空时返回False

     使用多个列表

4、广播机制(broadcasting):如果你有一个mn的矩阵,让它加减乘除一个1n的矩阵,它会被复制m次,成为一个mn的矩阵,然后再逐元素地进行加减乘除操作。

Cal = A.sum(axis=0)
#axis用来指明将要进行的运算是沿着哪个轴执行,0轴是垂直的轴,即列;1轴是水平轴,即行。

5、reshape:改变数组的形状(数组元素不会发生变化)

6、

a = np.random.randn(5,1)    #创建的是列向量or行向量
b = np.random.randn(5)    #尽量别用这种,不算矩阵,矩阵间计算会有问题

#输出
a = [[1],[2],[3],[4],[5]]T
b = [1,2,3,4,5]T

 四、元组

不可变的列表,使用圆括号"()"。(列表的元素可以修改,但是元组不能修改,只能重新赋值)。

num = (2, 5, 1, 6, 4)

五、字典

字典是一系列键-值对。每个键对应一个值(之间用冒号连接),可以通过使用键来访问与之关联的值。对应值可以是:数字、字符串、列表、字典可做类。

num = {'num1': 2, 'num2': 5, 'num3': '壹', 'num4': ‘六’, 'num5': 4}

字典拥有和列表相同的操作语句。

1、获取与键相关联的值:num['num1']     添加键-值对:num['num6'] = 12     (可以先创建空字典,再一个一个添加)     修改键-值对:num['num1'] = 12     删除键-值对:del语句(del num['num1'])

2、遍历字典:for循环:

for key, value in num.items(): (设置key, value两个变量)

     遍历字典中的所有键.keys()

for key in num.keys():

     遍历字典中的所有值.values()

for key in num.values():

     按顺序遍历sorted()

for key in sorted(num.keys()):

六、列表和字典的嵌套

嵌套:将一些列字典存储再列表中,或将列表作为值存储在字典中

字典列表

box = [num_1, num_2, num_3]
#类似于类,每个单元拥有单独的属性

在字典中存储列表

num = {'num1': [1, 2], 'num2': 5, 'num3': ['壹', 7], 'num4': ‘六’, 'num5': 4}

在字典中存储字典

num = {'num1': 
             {
             ‘第一个’: 1,'第二个': 2
             }, 
      'num2': 5,}

七:函数

1、 函数定义:

def handsome(who):
    """文档字符串(这个函数是耍帅用的)"""
    print(who.title() + "好帅" + "!!!")
handsome('jay')

 2、形参和实参:who是一个形参(函数执行所需的信息,可以有多个形参)(包含位置形参、关键字形参、默认值),jay是一个实参(调用函数时传递给函数的信息)

     Python可以向一个形参传递任意数量的实参。并优先匹配位置实参和关键词实参,再将余下的实参都收集到最后一个形参中

     可以向函数传递列表,并可修改列表元素(在函数中修改列表是永久性的)

3、返回值:函数并非总是直接显示输出,相反,它可以处理一些数据,并返回一个或一组值,称为返回值。函数可以返回任何类型的值,包括列表和字典等复杂的数据结构。调用有返回值的函数时,需要提供一个变量,用于存储返回的值。

def get_name(first_name,last_name):
    """返回姓名"""
    full_name = first_name + '·' + last_name
    return full_name    #返回值

name = get_name('jay', 'zhang')    #给返回值赋值
print(name)

4、函数模块:将函数存储在模块(*.py)的独立文件中,以便住程序调用。

     此语法同样适用于类的导入

    调用语句: 

import hanshu1    #调用模块
import hanshu1 as hs    #指定自定义别名

hanshu1.balabala()    #使用模块中的函数
hs.balabala()

     导入特定的函数:(可同时导入多个)

from hanshu1 import balabala1,balabala2,balabala3    #导入模块中的特定函数
from hanshu1 import balabala1 as ba    #指定自定义别名
from hanshu1 import *    #导入模块中的所有函数

balabala1()    #使用模块中的函数
ba()

八:类 

编写类时,定义一大类对象都有的通用行为。基于类创建对象时,每个对象都自动具备这种通用行为,然后可根据需要赋予每个对象独特的个性。类可以用来创建任何东西。首字母大写的名称是类

 实例化:根据类来创建对象

1、创建类

class Dog():                        #首字母大写的名称指的是类
    '''模拟小狗的简单类'''

    def _init_(self, name, age):    #方法(类中的函数(开头和结尾有下划线),用法与函数相同),创建实例时自动运行。其中形参self是必不可少的,并且必须位于其它自定义形参的前面(self是一中指向实例本沈的引用,让实例能够访问类中的属性和方法)。
        '''初始化属性name和age'''
        self.name = name            #每个属性必须有初始值
        self.age = age
        #后面可以直接继续添加属性

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

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

    def how_old(self):
        """模拟小狗自报岁数"""
        print(self.name.title() + "is" + self.age + " years old.")

2、根据类创建实例

class Dog():
    --略--

my_dog = Dog('jack', 6)    #使用实参jack和6来调用Dog类中的方法_init_()创建小狗实例my_dog,用输入的值设置属性name和age。可创建多个实例。

print("my dog's name is " + my_dog.name.title() + ".")    #访问实例中的属性    结果:my dog's name is Jack.
print("my dog is " + str(my_dog.age) + "years old.")                          结果:my dog is 6 years old.

my_dog.sit()    #创建实例后,就可以调用类中自定义的各种方法。    结果:Jack sit.
my_dog.roll_over()                                           结果:Jack roll over.
my_dog.how_old()                                             结果:Jack is 6 years old.

3、修改属性的值

     通过实例直接修改属性的值通过方法修改属性的值通过方法对属性进行递增

#1、通过实例直接访问修改
my_dog.age = 12
my_dog.how_old()            #结果:Jack is 12 years old.

#2、通过方法修改属性的值
def update_age(self,new_age):
    self.age = new_age

my_dog.update_age(12)
my_dog.how_old()            #结果:Jack is 12 years old.

#3、通过方法对属性进行递增
def increment_age(self,age_step):
    self.age += age_step

my_dog.increment_age(1)
my_dog.how_old()            #结果:Jack is 13 years old.

4、继承

     一个类继承另一个类时,将自动获取所有属性和方法。原有的类称为父类,新类称为子类。子类继承了其父类的所有属性和方法,同时还可以自定义自己的属性和方法。

     创建子类子类添加新属性、新方法重写父类的方法从一个模块中导入多个类

from another_class import Move, Action    #导入模块another_class.py中的类

-----------------------------------------------------
#创建子类时,父类必须包含在当前文件中,且位于子类前。
class Dog():
    ---略---

class Cat(Dog):                      #定义子类时,必须在括号内指定父类的名称。定义子类cat
    
    #继承父类的属性和方法
    def _init_(self, name, age):
        '''初始化父类的属性'''
        super()._init_(name, age)    #super()是一个特定函数,将父类和子类关联起来。

-----------------------------------------------------        
        self.move = Move()           #将一部分属性和方法单独提取出来放在Move类中(Move类在单独的程序模块another_class.py中,一个模块可以存储多个类),然后在此模块的类中引用,当作为此类的一个属性。简化程序
        self.color = yellow          #给子类添加新的属性

------------------------------------------------------
    def body(self):                  #给子类添加新的方法
        """模拟小猫的身体颜色"""
        print(self.name.title() + "'s color is" + self.color +".") 

    def roll_over():                 #重写父类的方法(重名即可,Python会只关注在子类中的定义方法)
        """猫不会打滚"""
        print(self.name.title() + "can't roll over.")
------------------------------------------------------

my_cat = Cat('tom', 20)              #新实例my_cat

my_cat.sit()                         #结果:Tom sit.
my_cat.roll_over()                   #结果:Tom can't roll over.
my_cat.how_old()                     #结果:Tom is 20 years old.
my_cat.body()                        #结果:Tom's color is yellow.
my_cat.move.move1()                  #调用引用类中的方法,对应self.move = Move()

九、文件操作

1、读取文件 

     Python读取的文本文件都解读为字符串。若想使用数字的数值,需要用int()float()函数转换为整数浮点数

     绝对路径相对路径逐行读取创建以文本每行内容为元素的列表

#绝对路径
with open('data1.txt') as data1:        #打开txt文件(绝对路径:在当前文件目录查找文件)
    contents = data1.read()             #读取文件内容
    print(contents.restrip())           #read()的末尾会返回一个空字符串,用restrip删除

-----------------------------------

#相对路径
file_path = 'C:\Desktop\data2.txt'
with open(file_path) as data2:

    #逐行读取
    for line in data2:                 #for循环,实现逐行读取
        print(line.rstrip())            
    -------------------------------
    #创建以文本每行内容为元素的列表
    lines = data2.readlines()          #读取每行,并赋予列表

    for line in lines:                 
        print(line.rstrip())

2、写入文件

     写入格式:'r'、'w'、'a'、'r+'

#写入文件
#open()函数的第二个实参包含:'r'读取模式,'w'写入模式(若文件已存在,会先清空),'a'附加模式(添加内容,不会覆盖文件原有内容),'r+'读取和写入
with open('data1.txt', 'w') as data1:
    data1.write("我好帅")

3、异常提示

     try-except代码:处理异常,使异常能够顺利跳过

try:
    print(5/0)
except ZeroDivisionError:    #ZeroDivisionError为"5/0"的错误代码类型(其它错误,改为其它)
    print("0不能当除数")
else:
    pass                     #程序什么也不做

#后面继续执行代码(因为已经用一个输出语句定义了发生错误时的解决方式,相当于没有异常)

4、存储数据

     json.dump():存储数字列表     json.load():将列表读取到内存中(实现在程序之间共享数据)

5、重构

     就是对代码进行改进的专业说法。

十、测试

略,详情见书

------------------------------------------

书中附带3个项目实战详细步骤:

外星人入侵小游戏、数据可视化、Web应用程序

十一、学习书籍

《Python编程:从入门到实践》   Rric Matthes著      中国工信出版集团,人民邮电出版社 

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值