第一节课,我们对Python这门课程有了一个大致的了解。
Python语言是在1989年12月,Guido van Rossum为了打发圣诞节假期,开发的ABC脚本语言的后继。Python名称来自于他喜欢的一个情景剧Month Python’s Flying Circus。Python是一种高级动态、完全面向对象的语言,函数、模块、数字、字符串都是对象,并且完全支持继承、重载、派生、多继承,有益于增强源代码的复用性。Python在2017年8月TIOBE排名中名列第五,在2017年IEEE排名中名列第一,可见Python语言也是占有重要地位的。Python程序设计哲学:优雅、明确、简单,其本身对程序设计敲写代码是有较高的格式标准的,格式不当或者表达不明确,程序都是无法正常运行的。Python在未来的发展中会与人工智能一齐革新更多领域。
在第一讲中,我们了解Python数据类型有:
整数:0x表示十六进制
浮点数:科学计数法,1.23e9
字符串:“或者‘’”
布尔值:Ture、False,可以使用and、or和not运算
空值:用None表示,不能理解为0
列表: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两个是同一个列表
字典:字典是一系列的键值对: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()):
字典和字典,字典和列表,列表和列表,可以嵌套使用。
通过对Python的入门了解,我们继而学习了一些Python的基本语法,如输入:print('hello world!') 即会出现结果hello world!其实在高中时期学过的C++语言中,也与之有些异曲同工之处。我认为Python语言更注重的是语法格式的讲究,正如以上内容所提到的Python的设计哲学:优雅、明确、简单。比C++更多所在意的是格式的写法。虽然我们现在所学的知识对于Python只是一个最基本的认知,但是也能够感受其语言的魅力所在。
在学习课程的过程中,我们也进行了相对的练习:
当输入hello world!以及计算2^100时:
Python程序设计语言总结有以下几个优点:
简单:Python是一种代表简单主义思想的语言。阅读一个良好的Python程序就感觉像是在读英语一样。它使你能够专注于解决问题而不是去搞明白语言本身。
易学:Python极其容易上手,因为Python有极其简单的说明文档。
速度快:Python 的底层是用 C 语言写的,很多标准库和第三方库也都是用 C 写的,运行速度非常快。
免费、开源:Python是FLOOS(自由/开放源码软件)之一。使用者可以自由地发布这个软件的拷贝、阅读它的源代码、对它做改动、把它的一部分用于新的自由软件中。FLOSS是基于一个团体分享知识的概念。
高层语言:用Python语言编写程序的时候无需考虑诸如如何管理你的程序使用的内存一类的底层细节。
可移植性:由于它的开源本质,Python已经被移植在许多平台上(经过改动使它能够工作在不同平台上)。这些平台包括Linux、Windows、FreeBSD、Macintosh、Solaris、OS/2、Amiga、AROS、AS/400、BeOS、OS/390、z/OS、Palm OS、QNX、VMS、Psion、Acom RISC OS、VxWorks、PlayStation、Sharp Zaurus、Windows CE、PocketPC、Symbian以及Google基于linux开发的android平台。
解释性:一个用编译性语言比如C或C++写的程序可以从源文件(即C或C++语言)转换到一个你的计算机使用的语言(二进制代码,即0和1)。这个过程通过编译器和不同的标记、选项完成。
当然,其缺点在与C++语言相比之下,Python的运行速度相对而言较慢。
在对Python有了一个基本认知之后,我们对Python的函数单元也进行了相关学习。
我觉得各类程序设计语言中的函数都是大同小异,是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。函数能提高应用的模块性,和代码的重复利用率。你已经知道Python提供了许多内建函数,比如print()。但你也可以自己创建函数,这被叫做用户自定义函数。
如果我要编写一段有关函数的程序,首先我要定义一个函数,定义一个由自己想要功能的函数,以下是简单的规则:
函数代码块以def关键词开头,后接函数标识符名称和圆括号()。
任何传入参数和自变量必须放在圆括号中间,圆括号之间可以用于定义参数。
函数的第一行语句可以选择性地使用文档字符串—用于存放函数说明。
函数内容以冒号起始,并且缩进。
return [表达式]结束函数,选择性地返回一个值给调用方。不带表达式的return相当于返回 None。
对于函数的调用,定义一个函数:给了函数一个名称,指定了函数里包含的参数,和代码块结构。这个函数的基本结构完成以后,你可以通过另一个函数调用执行,也可以直接从 Python 命令提示符执行。以下是调用函数时可使用的正式参数类型:
必需参数:必需参数须以正确的顺序传入函数。调用时的数量必须和声明时的一样。调用printme()函数,你必须传入一个参数,不然会出现语法错误
关键字参数:关键字参数和函数调用关系紧密,函数调用使用关键字参数来确定传入的参数值。使用关键字参数允许函数调用时参数的顺序与声明时不一致,因为 Python 解释器能够用参数名匹配参数值。
默认参数:调用函数时,如果没有传递参数,则会使用默认参数。
不定长参数:你可能需要一个函数能处理比当初声明时更多的参数。这些参数叫做不定长参数,和上述2种参数不同,声明时不会命名。
python使用 lambda 来创建匿名函数。所谓匿名,意即不再使用 def 语句这样标准的形式定义一个函数。lambda 只是一个表达式,函数体比
def 简单很多。lambda的主体是一个表达式,而不是一个代码块。仅仅能在lambda表达式中封装有限的逻辑进去。lambda
函数拥有自己的命名空间,且不能访问自己参数列表之外或全局命名空间里的参数。虽然lambda函数看起来只能写一行,却不等同于C或C++的内联函数,后者的目的是调用小函数时不占用栈内存从而增加运行效率。
return[表达式]语句用于退出函数,选择性地向调用方返回一个表达式。不带参数值的return语句返回None。
Python 中,程序的变量并不是在哪个位置都可以访问的,访问权限决定于这个变量是在哪里赋值的。
变量的作用域决定了在哪一部分程序可以访问哪个特定的变量名称。Python的作用域一共有4种,分别是:
L (Local) 局部作用域
E (Enclosing) 闭包函数外的函数中
G (Global) 全局作用域
B (Built-in) 内建作用域
以 L –> E –> G –>B 的规则查找,即:在局部找不到,便会去局部外的局部找(例如闭包),再找不到就会去全局找,再者去内建中找。
全局变量和局部变量:定义在函数内部的变量拥有一个局部作用域,定义在函数外的拥有全局作用域。局部变量只能在其被声明的函数内部访问,而全局变量可以在整个程序范围内访问。调用函数时,所有在函数内声明的变量名称都将被加入到作用域中。
默认参数必须放在最后面,否则会报:
模块为扩展名为.py的文件,函数位于模块中
Python引用扩展模块:import
import <模块> [as <别名>]
将模块中的函数等名称导入当前程序 “命名空间”namespace 引用方法:<模块>.<名称>
时间相关:calendar模块
跟日历相关的若干函数和类,可以 生成文本形式的日历
时间相关:datetime模块
时间相关:time模块
基本模块简介:算术
math:常用的算术函数、三角函数 、幂指数等等
cmath:支持复数的math函数
decimal:十进制定点数
fractions:有理数,比例
random:随机数 random.randint(a,b) random.randrange(start,stop,step)
statistics:一些统计函数
学到现在Python给我的感觉就是简单,灵活度较高,语法很贴近自然语言的习惯。