您的位置:首页 > 编程语言 > Python开发

阿齐兹的Python学习笔记——初识Python

2018-01-31 20:02 761 查看

初识Python

在命令行中打开Python

在Windows上,输入c:\Python34\python.exe -V

34代表Python的版本号,使用大写V,会显示Python的版本。如果没有-V,则直接进入Python解释器,使用quit()命令退出。

在Mac OS X或者Linux中,输入python3 -V

Python的集成开发环境IDLE

包括一个编辑器、一个调试工具、Python Shell、以及Python3在线文档集

BIF(built in function):内置函数

Python直接利用缩进指示代码块

print()的作用是把消息显示到标准输出(屏幕)

有效地使用IDLE

TAB完成:按下TAB键,IDLE会提供完成命令的一组建议

回退代码语句:Alt+P可以回退到前一个代码语句,Alt+N可以移至下一个代码语句

编辑回退的代码:一旦回退代码语句,就可以编辑之前输入的语句

调整IDLE的首选项

创建简单的Python列表

数据两边加引号,将数据转换为字符串

用逗号将列表项与下一项隔开

在列表两边加上开始和结束中括号

使用赋值操作符(=)将列表赋值至一个标识符

movies = ["The Holy Grail",
"The Life of Brain",
"The Meaning of Life"]


不需要为列表声明类型信息,因为Python的变量标识符没有类型

列表就像数组

创建列表时,解释器会在内存创建一个类似数组的数据结构来存储数据,数据项自上而下堆放(形成一个堆栈)

数据项从左到右编号从0到N-1

可以使用中括号记法访问列表数据

print(movies[1])


列表是完备的Python集合对象

可以对一个BIF的结果再调用另一个BIF

>>> cast = ["Cleese", "Palin", "Jones", "Idle"]
>>> print(cast)
['Cleese', 'Palin', 'Jones', 'Idle']
>>> print(len(cast))
4
>>> print(cast[1])
Palin


可以使用append()方法在列表的末尾增加一个数据项

可以使用pop()方法从列表末尾删除数据

>>> cast.append("Gilliam")
>>> print(cast)
['Cleese', 'Palin', 'Jones', 'Idle', 'Gilliam']
>>> cast.pop()
'Gilliam'
>>> print(cast)
['Cleese', 'Palin', 'Jones', 'Idle']


可以使用extend()方法在列表末尾增加一个数据项集合

增加的数据项集合是一个列表,需要用中括号括起

>>> cast.extend(["Gilliam", "Chapman"])
>>> print(cast)
['Cleese', 'Palin', 'Jones', 'Idle', 'Gilliam', 'Chapman']


可以使用remove()方法在列表中找到并删除一个特定的数据项

可以使用insert()方法在某个特定的位置前面增加一个数据项

>>> cast.remove("Chapman")
>>> print(cast)
['Cleese', 'Palin', 'Jones', 'Idle', 'Gilliam']
>>> cast.insert(0, "Chapman")
>>> print(cast)
['Chapman', 'Cleese', 'Palin', 'Jones', 'Idle', 'Gilliam']


向列表增加更多数据

Python列表可以包含混合类型的数据,可以在列表中存储任意类型的数据

Python列表是一个高层集合,设计为存储“相关事物”的集合,不关心这些事物的类型是什么,只提供一种机制,采用列表形式存储数据

处理列表数据

通常需要迭代处理列表,内置的for循环可以很方便地做到这一点

使用for循环是可伸缩的,适用于任意大小的列表

>>> fav_movies = ["The Holy Grail", "The Life of Brain"]
>>> for each_flick in fav_movies:
print(each_flick)

The Holy Grail
The Life of Brain


for循环处理任意大小的列表

for
目标标识符
in
列表
:

列表处理代码


列表处理代码被称为“组”(suit)

目标标识符(target identifier):每次执行循环代码时,目标标识符都会指示一个不同的数据值,循环会一直迭代,直到处理完列表的所有数据

while循环编写迭代代码

使用while时,必须考虑“状态信息”,这要求使用一个计数标识符

>>> count = 0
>>> while count < len(fav_movies):
print(fav_movies[count])
count = count+1

The Holy Grail
The Life of Brain


值得注意的问题

Python的“越界”: 如果试图访问一个不存在的数据项,Python会给出一个IndexError作为响应

字符串的用法: Python中,单引号、双引号都可以用来创建字符串;在字符串中嵌入一个双引号,可以通过 \” 对双引号转义,也可以用单引号引起这个字符串

标识符命名规则:名字可以以一个字母或者一个下划线开头,接下来可以包括任意个字母字符、数字和/或下划线

大小写敏感性:Python代码区分大小写

在列表中存储列表

列表中嵌套列表是可以的,列表中嵌套的列表还可以嵌套下一级列表,实际上可以嵌套任意多级

可以使用每个列表自己的列表方法来管理,并使用中括号记法来访问

>>> movies = ["The Holy Grail", 1975, "Terry Jones & Terry Gilliam", 91, ["Graham Chapman", ["Michael Palin", "Jones Cleese", "Terry Gilliam", "Eric Idle", "Terry Jones"]]]
>>> print(movies)
['The Holy Grail', 1975, 'Terry Jones & Terry Gilliam', 91, ['Graham Chapman', ['Michael Palin', 'Jones Cleese', 'Terry Gilliam', 'Eric Idle', 'Terry Jones']]]
>>> print(movies[4][1][3])
Eric Idle


for循环处理一个包含另一个列表(或多个列表)的列表

for循环只打印外列表的各个数据项,嵌套在内列表的下一层列表会原样打印

>>> for each_item in movies:
print(each_item)

The Holy Grail
1975
Terry Jones & Terry Gilliam
91
['Graham Chapman', ['Michael Palin', 'Jones Cleese', 'Terry Gilliam', 'Eric Idle', 'Terry Jones']]


在列表中查找列表

if…else…模式:

if
某个条件满足
:

"true"组


else:

"false组"


注意有两个冒号,“true”组和“false”组都要缩进

BIF isinstance()

isinstance:可以检查某个特定的标识符是否包含某个特定类型的数据

>>> names = ["Michael", "Terry"]
>>> isinstance(names, list)
True
>>> num_names = len(names)
>>> isinstance(num_names, list)
False


改进版1.0的for循环处理一个包含另一个列表的列表

>>> for each_item in movies:
if isinstance(each_item, list):
for nested_item in each_item:
print(nested_item)
else:
print(each_item)

The Holy Grail
1975
Terry Jones & Terry Gilliam
91
Graham Chapman
['Michael Palin', 'Jones Cleese', 'Terry Gilliam', 'Eric Idle', 'Terry Jones']


改进版2.0的for循环处理一个包含另一个列表的列表

>>> for each_item in movies:
if isinstance(each_item,list):
for nested_item in each_item:
if isinstance(nested_item,list):
for deeper_item in nested_item:
print(deeper_item)
else:
print(nested_item)
else:
print(each_item)

The Holy Grail
1975
Terry Jones & Terry Gilliam
91
Graham Chapman
Michael Palin
Jones Cleese
Terry Gilliam
Eric Idle
Terry Jones


值得注意的问题

查找BIF:在Python或IDLE shell中,键入
dir(__builtins__)
可以看到Python提供的内置方法列表(builtins前面和后面分别有两个下划线字符)

查看某个BIF做什么:比如说input,可以在shell中键入help(input)

在Python中创建一个函数

def
函数名
(参数):

函数代码组


参数表是可选的,但是括号少不了

结束括号后面有一个冒号,指示函数代码组开始

函数代码组必须在
def
语句下面缩进

使用递归函数处理一个包含多个列表的列表

>>> def print_lol(the_list):
for each_item in the_list:
if isinstance(each_item, list):
print_lol(each_item)
else:
print(each_item)

>>> print_lol(movies)
The Holy Grail
1975
Terry Jones & Terry Gilliam
91
Graham Chapman
Michael Palin
Jones Cleese
Terry Gilliam
Eric Idle
Terry Jones


Python 3默认为递归深度不能超过100

小结

在命令行或者IDLE中运行Python 3

标识符没有类型

列表可以存放任意数据

BIF: print()、len()、isinstance()

for循环、if…else…

如何定义函数
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  python