《黑科技Python笔记》上

作者:嵌入式历练者

ID : Eterlove

记下相关笔记,记录我的学习生活!站在巨人的肩上Standing on Shoulders of Giants!

该文章为原创,转载请注明出处和作者:https://blog.csdn.net/Eterlove/article/details/120189419

目录

前言:

Python基础知识

1.PyCharm的安装和使用

2.变量和简单数据类型

3.列表及其使用

       3.1.列表是什么

       3.2.访问列表元素

        3.3.修改列表元素

        3.4.在列表中添加元素

        3.5从列表中删除元素

        3.6.遍历整个列表

        3.7.创建数值列表

        3.8.处理列表的部分元素——Python称之为切片

        3.9.元组的定义和使用

4.if语句和while循环语句

        4.1. if语句的介绍

        4.2.用户输入和while循环

5.字典及其使用

        5.1.字典的定义

        5.2.在字典中添加新的键---值

        5.3.可以创建一个空字典

        5.4.修改字典中的值和删除键--值对

6.函数

        6.1.函数的定义

        6.2.函数参数的传递

6.3.可以为函数的形参设置默认值

        6.4.函数的返回值

7.将函数存储在模块中

7.1导入整个模板和特定函数

        7.2.为函数和模块起别名

8.总结


前言:

         由于电赛可能要用到Open Mv,下来自学了Python基础知识,我开始比较简单,直接用了本经典的python书籍《Python编程:从入门到实践》来入门,该书的后面也有三个项目实战,跟着它边学边做,具有很大的收获!总结下这几天的收获!

该文章为原创,转载请注明出处和作者:https://blog.csdn.net/Eterlove/article/details/120189419


Python基础知识

1.PyCharm的安装和使用

        这个就不必多说,哔哩哔哩和博客上一大把资料和视频,跟着学就完事了

2.变量和简单数据类型

        先看这段编程语言之始Hello world!代码

       1. 值得注意的是,于其他编程语言(尤其是C语言)相比,Python的代码显得简洁了许多,没有C语言中printf的严格的格式控制,也没有以;分号结束语句!Python中大多以缩进来表示格式(这一点在后面的语句中会提出来)

print("Hello Python world!")
运行上述代码时,你将看到如下输出:
Hello Python world!

        2.变量的声明不需要显式表达出数据类型,意思是变量的数据类型由给它赋的值的类型决定,message后面赋的值是字符串,message为String类型(在Python中  '   ' "   " 这两个符号中内容都表示字符串,在C语言中前者内容表示字符,后者表示字符串);name变量后面赋的值为整数5,则name的数据类型是整数型。值得注意的是,Python语言中声明变量是必须进行赋值(初始化),不能向C语言那样可以先赋值,后面进行初始化!

message = "Hello Python world!"
print(message)
运行程序会得到这样的结果:
Hello Python world!

name = 5
print(name)
运行程序会得到这样的结果:
5

        3.关于变量的命名和使用,两个方面:变量名只能包含字母、数字和下划线。但不能以数字开
,不要将Python关键字和函数名用作变量名; 变量的命名要见名知意(别人通过你的命名猜出意思),要驼峰命名或下划线隔开(例如StudentName,name_length),可读性高!你以后要做的就是一直坚持同一种命名风格。

        4.字符串就是一系列字符。在Python中,用引号括起的都是字符串,其中的引号可以是单引号。使用方法title()修改字符串的大小写(到这步,我们先实践用下方法,先不用管他是怎么来的,后面会讲到 )

name = "chen cheng"
print(name.title())
将这个文件保存为name.py,再运行它。你将看到如下输出:
Chen Cheng


    在这个示例中,小写的字符串"chen cheng"存储到了变量name中。在print()语句中,方法
title()出现在这个变量的后面。 方法是Python可对数据执行的操作。在name.title()中, name后
面的句点( .)让Python对变量name执行方法title()指定的操作。每个方法后面都跟着一对括号,
这是因为方法通常需要额外的信息来完成其工作。这种信息是在括号内提供的。函数title()不
需要额外的信息,因此它后面的括号是空的。

        5.要将字符串改为全部大写或全部小写,可name.upper(),name.lower()方法完成,赶紧去试一试吧!最后Python使用加号( +)来合并字符串(这种方法称为拼接),要在字符串中添加制表符,可使用字符组合\t,换行用\n(其他的用到再搜索)

        6.在Python中,可对整数执行加( +)减( -)乘( *)除( /)运算。Python将带小数点的数字都称为浮点数,你只需输入要使用的数字, Python通常都会按你期望的方式处理它们(>>>在终端中表示命令行的格式,提示你输入):

>>> 0.1 + 0.1
0.2
>>> 2 * 0.1
0.2

但需要注意的是,结果包含的小数位数可能是不确定的:
>>> 0.2 + 0.1
0.30000000000000004

        7.使用函数 str()避免类型错误

age = 23
message = "Happy " + age + "rd Birthday!"
print(message)
  但如果你运行这些代码,将发现它们会引发错误:
TypeError: Can't convert 'int' object to str implicitly
  Python发现你使用了一个值为整数( int)的变量,但它不知道该如何解读这个值23。 Python知道,这个变量表示的可能是数值23,也可能是字符2和3。像上面这样在字符串中使用整数时,需要显式地指
出你希望Python将这个整数用作字符串。为此,可调用函数str(),它让Python将非字符串值表示
为字符串。所以第二行语句改为 message = "Happy " + str(age) + "rd Birthday!"

3.列表及其使用

       3.1.列表是什么

        列表由一系列按特定顺序排列的元素组成,可以将任何东西加入列表中,其中的元素之间可以没有任何关系。用方括号 [  ]来表示列表,并用逗号来分隔其中的元素

name = ["zhang_san","chen_cheng","li_hong"]
print(name)
运行代码得到如下结果:
['zhang_san', 'chen_cheng', 'li_hong']

       3.2.访问列表元素

        要访问列表元素,可指出列表的名称,再指出元素的索引,并将其放在方括号内,值得注意的是索引从0而不是从1开始的!这与列表操作的底层实现相关。如果结果出乎意料,请看看你是否犯了这个错误。 

        Python为访问最后一个列表元素提供了一种特殊语法。通过将索引指定为-1,可让Python返回最后一个列表元素

print(name[1])
运行代码得到以下结果:
chen_cheng

print(name[-1])
运行代码得到以下结果:
li_hong

        3.3.修改列表元素

        要修改列表元素,可指定列表名和要修改的元素的索引,再指定该元素的新值。

name = ["zhang_san","chen_cheng","li_hong"]
name[0] = "liu_zi"
print(name)
代码结果:['liu_zi', 'chen_cheng', 'li_hong']

        3.4.在列表中添加元素

        在列表中添加新元素时,最简单的方式是使用方法append()将元素附加到列表末尾

motorcycles = ['honda', 'yamaha', 'suzuki']
print(motorcycles)
motorcycles.append('ducati')
print(motorcycles)

方法append()将元素'ducati'添加到了列表末尾,而不影响列表中的其他所有元素:
['honda', 'yamaha', 'suzuki']
['honda', 'yamaha', 'suzuki', 'ducati']

        使用方法insert()可在列表的任何位置添加新元素。为此,你需要指定新元素的索引和值

motorcycles = ['honda', 'yamaha', 'suzuki']
motorcycles.insert(0, 'ducati')
print(motorcycles)
在这个示例中,值'ducati'被插入到了列表开头,方法insert()在索引0处添加空间,
并将值'ducati'存储到这个地方。这种操作将列表中既有的每个元素都右移一个位置:
['ducati', 'honda', 'yamaha', 'suzuki']

        3.5从列表中删除元素

        使用del可删除任何位置处的列表元素,条件是知道其索引。值得注意的是使用del语句将值从列表中删除后,你就无法再访问它了

motorcycles = ['honda', 'yamaha', 'suzuki']
print(motorcycles)
del motorcycles[1]
print(motorcycles)

['honda', 'yamaha', 'suzuki']
['honda', 'suzuki']

        有时,你要将元素从列表中删除,并接着使用它的值。方法pop()可删除列表末尾的元素,并让你能够接着使用它。

        实际上,你可以使用pop()来删除列表中任何位置的元素,只需指定元素索引,first_owned = motorcycles.pop(0),我希望你去试一试这个的结果。
 

motorcycles = ['honda', 'yamaha', 'suzuki']
print(motorcycles)
popped_motorcycle = motorcycles.pop()
print(motorcycles)
print(popped_motorcycle)
结果:
['honda', 'yamaha', 'suzuki']
['honda', 'yamaha']
suzuki
我们从列表中弹出一个最后的值'suzuki',并将存储到变量popped_motorcycle,通过两次print()
证明成功

        最后,还有一种方法remove()根据值删除元素,你只知道要删除的元素的值,不知道要从列表中删除的值所处的位置。motorcycles.remove('ducati') 我希望你动手试一试来告诉我答案!

        可能有人开始烦闹,学了这里感觉方法太多了,记不住,其实Python最突出的点就是方法,后面讲的模块,类众多,当你在开发实践中,用的多了,自然就记住了(当然长时间肯定记得不是很清晰),但你可以随时网上查找,但起码你总要知道这个方法对吧,所以平时多实践是一个非常优秀的习惯!

        3.6.遍历整个列表

        接下来,我将结合列表的操作来讲解下Python的for语句,在众多语言中for语句常用来进行遍历操作(所谓遍历,简单说就是对每个元素执行相同的操作),在C语言中,常用for语句来对数组进行遍历操作,而在python中则用for语句对列表进行遍历操作,不过它们俩的格式可是有大大的不同!

       names = ["zhang_san","chen_cheng","li_hong"]
 步骤1 for name in names:
 步骤2     print(name)

结果:zhang_san
     chen_cheng
     li_hong

        for name in names:(形如for a in b: 此处冒号一定不能省略)这条for语句让Python获取列表names中的第一个值( "zhang_san"),并将其存储到变量name,接下来, Python读取下一行代码(步骤二),通过print()打印出zhang_san的,然后又回到步骤1开始处理第二个值,如此循环直到列表中的值处理完。

        值得注意的是:1.使用单数和复数式名称,可帮助你判断代码段处理的是单个列表元素还是整个列表(name,names)

2.细心的同学可能发现,for语句下面的代码所缩进了四个空,在Python中,遵循一些格式设置约定(参考PEP 8),Python解释器根据水平缩进情况来解读代码,如果没有缩进,将会报错。常见的“IndentationError: expected an indented block”的问题,将紧跟在for语句后面的代码行缩进,可消除这种缩进错误。

3.在其它语言中,常用{  }来表示代码的之间的关系,而Python中是用缩进来实现的,有一个原因是{  }在python有其它的作用!注意for语句最后的 : 也常常被人忘记!Python 诞生之初被誉为最容易上手的编程语言。Python 的设计哲学强调代码的可读性和简洁的语法.

        3.7.创建数值列表

        在数据可视化中,处理的几乎都是由数字组成的集合,Python函数range()让你能够轻松地生成一系列的数字,使用函数 range()

for value in range(1,5):
    print(value)
          上述代码好像应该打印数字1~5,但实际上它不会打印数字5:
1         range()只是打印数字1~4,这是你在编程语言中经常看到的差一行为的结果,
2         函数range()让Python从你指定的第一个值开始数,并在到达你指定的第二个值后停止,
3
4

        要创建数字列表,可使用函数list()将range()的结果直接转换为列表

numbers = list(range(1,6))
    print(numbers)
结果如下:
[1, 2, 3, 4, 5]
使用函数range()时,还可指定步长
even_numbers = list(range(2,11,2))
    print(even_numbers)
在这个示例中,函数range()从2开始数,然后不断地加2,直到达到或超过终值( 11)
[2, 4, 6, 8, 10]

        3.8.处理列表的部分元素——Python称之为切片

        要创建切片,可指定要使用的第一个元素和最后一个元素的索引.

names = ['zhang_san','chen_cheng','li_hong','liu_li','chen_yu']
print(names[0:3])
print(names[0:-1])
print(names[:])
print(names[-1])
print(names[-3:])

负数索引返回离列表末尾相应距离的元素,要输出名单上的最后三名队员,可使用切片names[-3:]


与函数range()一样, Python在到达你指定的第二个索引前面的元素后停止
['zhang_san', 'chen_cheng', 'li_hong']
['zhang_san', 'chen_cheng', 'li_hong', 'liu_li']
['zhang_san', 'chen_cheng', 'li_hong', 'liu_li', 'chen_yu']
chen_yu
['li_hong', 'liu_li', 'chen_yu']

        要复制列表,可创建一个包含整个列表的切片,方法是同时省略起始索引和终止索引( [:]),这让Python创建一个始于第一个元素,终止于最后一个元素的切片,即复制整个列表。我们在不指定任何索引的情况下从列表提取一个切片,从而创建了这个列表的副本。

        3.9.元组的定义和使用

        列表非常适合用于存储在程序运行期间可能变化的数据集,然而,有时候你需要创建一系列不可修改的元素, Python将不能修改的值的列表被称为元组。元组看起来像列表,但使用圆括号而不是方括号来标识。

ditgits = (85,75)
ptint(ditgits[0])
元素的值不能够修改,试图修改元素的值,导致Python返回类型错误消息

4.if语句和while循环语句

        4.1. if语句的介绍

        格式为   if   条件测试表达式:(注意不要忘记冒号:)

  •         根据条件测试的值为True还是False来决定是否执行if语句中的代码。如果条件测试的值为True,Python就执行紧跟在if语句后面的代码;如果为False, Python就忽略这些代码
  •      使用and,or检查多个条件,and只有每个测试条件为Ture,整个表达式就为True,反之为False;而or只要有一个条件为Ture,则整个表达式就为Ture,反之为False(作用就相当于C语言中的&&和||的用法,但不能再Python中使用&&,||,会被认定为语法错误)
    if conditional_test:
        do something  此处应该缩进四个空格,与前面的for规定一样,
        Python解释器根据水平缩进情况来解读代码,如果没有缩进,将会报错
  • 条件语句其他结构:if-else 语句和if-elif-else(在C语言中有if-else if-else结构,不要认为Python中else if会有效,在python中,elif不是else if  的缩写,实际上会认定为语法错误)
  • 引用书中的例子,顾客的要求往往五花八门,在比萨配料方面尤其如此。如果顾客要在比萨中添加炸薯条,该怎么办呢?可使用列表和if语句来确定能否满足顾客的要求。
    来看看在制作比萨前如何拒绝怪异的配料要求。下面的示例定义了两个列表,其中第一个列
    表包含比萨店供应的配料,而第二个列表包含顾客点的配料。这次对于requested_toppings中的每个元素,都检查它是否是比萨店供应的配料,再决定是否在比萨中添加它:
    (1)available_toppings = ['mushrooms', 'olives', 'green peppers',
                          'pepperoni', 'pineapple', 'extra cheese']
    (2)requested_toppings = ['mushrooms', 'french fries', 'extra cheese']
    (3)for requested_topping in requested_toppings:
        (4)if requested_topping in available_toppings:
               print("Adding " + requested_topping + ".")
        (5)else:
               print("Sorry, we don't have " + requested_topping + ".")
      在(1)处,我们定义了一个列表,其中包含比萨店供应的配料。请注意,如果比萨店供应的配
    料是固定的,也可使用一个元组来存储它们。在(2)处,我们又创建了一个列表,其中包含顾客点
    的配料,请注意那个不同寻常的配料——'french fries'。在(3)处,我们遍历顾客点的配料列表。
    在这个循环中,对于顾客点的每种配料,我们都检查它是否包含在供应的配料列表中(4);
    如果答案是肯定的,就将其加入到比萨中,否则将运行else代码块(见6):打印一条消息,告
    诉顾客不供应这种配料。
    结果:
    Adding mushrooms.
    Sorry, we don't have french fries.
    Adding extra cheese.
  • 在条件测试的格式设置方面, PEP 8提供的唯一建议是,在诸如==、 >=和<=等比较运算符两边各添加一个空格,例如, if age < 4:要比if age<4:好。
    这样的空格不会影响Python对代码的解读,而只是让代码阅读起来更容易

        4.2.用户输入和while循环

  • 函数input()让程序暂停运行,等待用户输入一些文本(与print()效果相反),获取用户输入后, Python将其存储在一个变量中,以方便你使用。
  • >>> name = input("please enter your name:")
    please enter your name:lishi
    >>> print("hello,+name+!")
    hello,+name+!
    >>> print("hello,"+ name +"!")
    hello,lishi!
    >>> 
    对于输出hello,+name+!的错误结果,我希望你去找一找前面字符串的知识,发现其中的问题,对于第二种输出结果,恭喜你写对了!
  • 使用while循环时,格式-----while 条件测试式这个:也不能忘!)条件测试式为Ture时,while语句不断地循环,直到条件测试式为False时结束循环。
  • 下面的while循环从1数到5:
    >>> number = 1
    >>> while number <=5:
    	    print(number)
    	    number++
    
    现在报错SyntaxError: invalid syntax
    改正:
    >>> while number <=5:
    	    print(number)
    	    number += 1
    
    	
    1
    2
    3
    4
    5

    可见Python中没有这样的写法number++(n++在C语言中是自加1的写法缩写)

  • 在要求很多条件都满足才继续运行的程序中,可定义一个变量,用于判断整个程序是否处于
    活动状态。这个变量被称为标志active,充当了程序的交通信号灯。你可让程序在标志为True时继续运行,并在任何事件导致标志的值为False时让程序停止运行。这样,在while语句中就只需检查一个条件——标志的当前值是否为True,并将所有测试(是否发生了应将标志设置为False的事件)都放在其他地方,从而让程序变得更为整洁。
     

5.字典及其使用

        5.1.字典的定义

        1.在Python中, 字典是一系列键—值 相对应。每个键都与一个值相关联,你可以使用键来访问与之相关联的值。与键相关联的值可以是数字、字符串、列表乃至字典。事实上,可将任何Python对象用作字典中的值。(类和对象是面向对象编程(OOP),对象是类的实例,实例就是对象,等到后期我将详解类和对象)

        2.在Python中,字典用放在花括号{  }中的一系列键—值对表示(这对应前面的{ }在Python的作用)键—值对是两个相关联的值。指定键时, Python将返回与之相关联的值。  键和值之间用冒号分隔,而键—值对之间用逗号分隔,在字典中,你想存储多少个键—值对都可以。

        3.先来个实例,在游戏中,我想用字典存储子弹的子弹的颜色和数量

bullet = {'color':'red','points':'10'}
print(bullet['points'])
print(bullet['color'])
结果:
10
red

        要获取与键相关联的值,可依次指定字典名和放在方括号内的键,要获取整个字典,只需要字典名,快去试一试print(bullet)吧!

        5.2.在字典中添加新的键---值

        1.字典是动态结构,可以随时添加新的元素,我们在字典中添加了bullet子弹的x和y坐标

>>> bullet['bullet_x']=25
>>> bullet['bullet_y']=45
>>> print(bullet)
{'color': 'green', 'points': '5', 'bullet_x': 25, 'bullet_y': 45}
>>> 

        此时,print(bullet)就可以看到字典中有了bullet子弹的x,y坐标。(另外,>>>不是代码,它代表Python解释器中的命令行格式,提示你进行输入)

        5.3.可以创建一个空字典

bullet = {}

         这个时候,我们可以根据需求添加我们想要的元素,使用字典来存储用户提供的数据或在编写能自动生成大量键—值对的代码。

        5.4.修改字典中的值和删除键--值对

  • 1.要修改字典中的值,可依次指定字典名、用方括号括起的键以及与该键相关联的新值,例如,我想要修改子弹的x坐标为10.
>>> bullet = {'color': 'green', 'points': '5', 'bullet_x': 25, 'bullet_y': 45}
>>> bullet['bullet_x']=10
>>> print(bullet)
{'color': 'green', 'points': '5', 'bullet_x': 10, 'bullet_y': 45}
>>> 
  • 2.对于字典中不再需要的信息,可使用del语句将相应的键—值对彻底删除(删除的键—值对永远消失了
>>> bullet = {'color': 'green', 'points': '5', 'bullet_x': 25, 'bullet_y': 45}
>>> bullet['bullet_x']=10
>>> print(bullet)
{'color': 'green', 'points': '5', 'bullet_x': 10, 'bullet_y': 45}
>>> del bullet['color']
>>> print(bullet)
{'points': '5', 'bullet_x': 10, 'bullet_y': 45}
>>> 
  • 例子中使用del语句删除color键,然后print(bullet)发现color:green这对键-值消失了。
  • 对于较长的列表和字典,大多数编辑器都有以类似方式设置其格式的功能
 bullet = {
    'color': 'green',
    'points': '5', 
    'bullet_x': 25, 
    'bullet_y': 45
    }

最后,我想简单提一下字典的遍历,也是用for语句实现,和列表的做法差别不大。小伙伴可以自行搜索一下。

6.函数

        函数简单的说是带名字的代码块,用于完成具体的工作

        目的:当这段代码块多次用到时就可以把代码块定义成函数函数让你编写代码一次后,想重用它们多少次就重用多少次。需要运行函数中的代码时,只需编写一行函数调用代码,就可让函数完成其工作。

        6.1.函数的定义

        在Python中,我们用关键字def来定义函数,格式def FunctionName():(这个:也不能省,一定不能忘记)

>>> def greet_user():
	"""显示简单的问候语"""
	print("Hello!")

	
>>> greet_user()  此处调用函数
Hello!
>>> 
  • 紧跟在def greet_user():后面的所有缩进行构成了函数体,文本是被称为文档字符串
    的注释,描述了函数是做什么的。"""显示简单的问候语"""文档字符串用三引号括起
  • 要使用这个函数,可调用它。 函数调用让Python执行函数的代码。要调用函数,可依次指定
    函数名以及用括号括起的必要信息
    ,此处函数没有参数,括号里可以不用写参数,但括号必须写。

        6.2.函数参数的传递

  • 让函数greet_user()不仅向用户显示Hello!,还将用户的名字用作开头。这个时候函数定义里括号里设置函数期望得到的参数,然后在函数调用时传入参数
>>> def greet_user(username):   此处括号里的参数为形参
	"""显示简单的问候语"""
	print("Hello, " + username.title() + "!")

>>> greet_user('chenyu')
Hello, Chenyu!
>>> 
  • 如果忘记了title()方法的作用,可以翻一翻前面的知识
  • 在函数定义时,括号里的参数为形参,在函数调用时括号中我们称为实参
  • 你调用函数时, Python必须将函数调用中的每个实参都关联到函数定义中的一个形参。 为此,最简单的关联方式是基于实参的顺序这种关联方式被称为位置实参
  • 这里我用书中的例子:
    >>> def describe_pet(animal_type,pet_name):
    	"""显示宠物的信息"""
    	print("\n我有一只"+ animal_type )
    	print("我的"+ animal_type + "的名字是" + pet_name.title())
    
    >>> describe_pet('dog','hangli')
    
    我有一只dog
    我的dog的名字是Hangli')
    此时实参的位置顺序与形参一致。
    • 此外,还有一种方式就是关键字实参,关键字实参是传递给函数的名称—值对你直接在实参中将名称和值关联起来了,因此向函数传递实参时不会混淆。关键字实参让你无需考虑 函数调用中的实参顺序,还清楚地指出了函数调用中各个值的用途。
      >>> describe_pet(pet_name = 'hangli',animal_type = 'dog')
      
      我有一只dog
      我的dog的名字是Hangli
      >>> 

      6.3.可以为函数的形参设置默认值

  • 编写函数时,可给每个形参指定默认值。在调用函数中给形参提供了实参时, Python将使用指定的实参值;否则,将使用形参的默认值
  • 使用默认值时,在形参列表中必须先列出没有默认值的形参,再列出有默认值的实参。
    这让Python依然能够正确地解读位置实参
  • 在Python中在为函数的形参设置默认值是可行的,但是在C语言中则没有该功能,不过在C++中增加了这个功能。

        6.4.函数的返回值

1.和其他编程语言一样,在Python中函数也有返回值。函数可以处理一些数据,并返回一个或一组值,函数返回的值被称为返回值。

2.在函数中,可使用return语句将值返回到调用函数的代码行,返回值让你能够将程序的大部分繁重工作移到函数中去完成,从而简化主程序。

>>> def get_formatted_name(first_name, last_name):
	    """返回整洁的姓名"""
	    full_name = first_name + ' ' + last_name
	    return full_name.title()

>>> name = get_formatted_name('cheng', 'shen')
>>> print(name)
Cheng Shen
    函数get_formatted_name()的定义通过形参接受名和姓,它将姓和名合而为一,在它
们之间加上一个空格,并将结果存储在变量full_name中。然后,将full_name的值转换为
首字母大写格式,并将结果返回到函数调用行。
    调用返回值的函数时,需要提供一个变量,用于存储返回的值。在这里,将返回值存储在了
变量name中。输出为整洁的姓名:

        值得注意的是函数可返回任何类型的值,包括列表和字典等较复杂的数据结构

    7.将函数存储在模块中

  • 所谓模块就是扩展名为.py的文件(就是Pycharm开始建立新工程.py文件),里面存放自己需要需要的函数。
  • 函数的优点之一是,使用它们可将代码块与主程序分离。通过给函数指定描述性名称,可让
    主程序容易理解得多。你还可以更进一步,将函数存储在被称为模块的独立文件中,再将模块导入到主程序中。 import语句允许在当前运行的程序文件中使用模块中的代码。
  • 通过将函数存储在独立的文件中,可隐藏程序代码的细节,将重点放在程序的高层逻辑上。
    这还能让你在众多不同的程序中重用函数。将函数存储在独立文件中后,可与其他程序员共享这些文件而不是整个程序。知道如何导入函数还能让你使用其他程序员编写的函数库。

7.1导入整个模板和特定函数

这里我用pygame模板为例(pygame是Python中现成处理游戏的模板,网上开源下载,Python的强大之处之一就是有各种各样的模块),当然自己可以写一个模块导入。

  • import pygame
    
  • Python读取这个文件时,代码行import pygame让Python打开文件pygame.py,并将其中的所有函数都复制到这个程序中。你看不到复制的代码,因为这个程序运行时, Python在幕后复制这些代码。
  • 假设pygame模块中有make_bullet(),你可以这样使用函数:
  • pygame.make_bullet()
    
  • 你还可以导入模块中的特定函数:  from pygame import make_bullet
  • 格式:from module_name import function_name
    
    from pygame import make_bullet
    
    通过用逗号分隔函数名,可根据需要从模块中导入任意数量的函数
    from module_name import function_name1,function_name2
    通过导入模块中特定的函数,使用这种语法,调用函数时就无需使用句点。由于我们在import语句中显式地导入了函数make_pizza(),因此调用它时只需指定其名称。
  • make_bullet()

        7.2.为函数和模块起别名

  • 如果要导入的函数的名称可能与程序中现有的名称冲突,或者函数的名称太长,可指定简短
    而独一无二的别名,
    以上面为例。
  • from pygame import make_bullet as ch
    
    此时make_bullet函数就有个别名,调用它
    
    ch()
    make_billet()
    两个都对
    关键字as将函数重命名为你提供的别名
  • 可以给模块指定别名。通过给模块指定简短的别名(如给模块pygame指定别名p)
    import pygame as p
    
    调用pygame中的函数make_bullet()
    p.make_bullet()

8.总结

        基本的python基础知识已经讲完了,类和对象这一节及研讨内容我想把它放在下一篇博客里讲述,我想说的是要学好一门编程语言,只有多动手敲代码,在学会基本语法的情况下,在实际项目中锻炼自己的编程能力,多用python去编程一些小游戏(网上一搜一大把),后续看情况我将出一篇用python写的小游戏博客。

如果有兴趣的小伙伴可以关注一波哦,点个赞,值得收藏!!!欢迎评论区留言!

该文章为原创,转载请注明出处和作者,感谢大家支持。

  • 9
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 7
    评论
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

嵌入式历练者

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值