Python程序设计(一)
Python基础知识
Python对象模型
对象是Python语言中最基本的概念之一,Python中的一切都是对象。Python中有许多内置对象可供编程者直接使用,例如数字、字符串、列表、元组、字典、集合、del命令和len()、id()、type()等大量内置函数,下表中列出了其中一部分常见的Python内置对象。
Python变量
在Python中,不需要事先声明变量名及其类型,直接赋值即可创建各种类型的变量。
>>>x=3
>>>print(type(x))
<class'int'>
>>>x='Hello world.'
>>>print(type(x))
<class'str'>
>>>x=[1,2,3]
>>>print(type(x))
<class'list'>
定义变量名(包括函数名和类名)的时候,需要注意以下问题:
(1)变量名必须以字母、汉字或下划线开头,但以下划线开头的变量在Python中有特殊含义。
(2)变量命中不能有空格以及标点符号(括号、引号、逗号、斜线、反斜线、冒号、句号、问号等)。
(3)不能使用关键字作为变量名,可以导入keyword模块后使用print(keyword.kwlist)查看所有Python关键字。
(4)不建议使用系统内置的模块名、类型名或函数名以及已导入的模块名及其成员名作为变量,这会改变其类型和含义。
(5)变量名区分英文字母的大小写,例如student和Student是不同的变量。
字符串
转义字符 | 含义 | 转义字符 | 含义 |
---|---|---|---|
\n | 换行符 | \’’ | 双引号 |
\t | 制表符 | \\ | 一个\ |
\r | 回车 | \ooo | 3位八进制数对应的字符 |
\’ | 单引号 | \xhh | 2位十六进制数对应的字符 |
\uhhhh | 4位十六进制数对应的字符 | \Uxxxxxxxx | 8位十六进制数对应的字符,要求不大于\U0010FFFF |
基本输入输出
基本输入:
在Python中,使用内置函数input()来接收用户的键盘输入,input()函数的一般用法为
x=input(‘提示:’)
不论用户输入什么,input()函数的返回结果都是字符串,需要将其转换为相应的类型。
>>>x=input('Please input:')
Please input:3
>>>print(type(x))
<class 'str'>
>>>x=input('Please input:')
Please input:[1,2,3]
>>>print(type(x))
<class 'str'>
基本输出:
基本输出函数print()的语法如下:
print(value,…,sep=’’,end=’\n’,file=sys.student,flush=False)
其中,参数sep用来指定分隔符,参数end用来指定结束符。例如,下面的代码用来修改默认的分隔符:
>>>print(3,5,7,sep=':')
3:5:7
>>>print(3,5,7,sep=',')
3,5,7
下面的代码用来修改默认的结束符:
>>>for i in range(10,20):
print(i,end='')
10 11 12 13 14 15 16 17 18 19
模块导入与使用
1.import模块名[as别名]
使用这种方式导入模块以后,需要在要使用的对象之前加上前缀,即以“模块名.对象名”的方式访问。也可以为导入的模块设置一个别名,然后可以使用“别名.对象名”的方式使用其中的对象。
>>>import math
>>>math.sin(0.5) #求0.5的正弦值
0.479425538604203
>>>import random
>>>x=random.random() #获得[0,1]区间上的随机小数
>>>n=random.randint(1,100) #获得[1,100]区间上的随机整数
>>>import numpy as np #导入模块并设置别名
>>>a=np.array((1,2,3,4)) #通过模块的别名来访问其中的对象
2.from 模块名 import 对象名[as别名]
使用这种方式仅导入明确指定的对象,并且可以为导入的对象起一个别名。这种导入方式可以减少查询次数,提高访问速度,同时也减少了程序员需要输入的代码量,不需要使用模块名作为前缀。例如:
>>>from math import sin
>>>sin(3)
0.1411200080598672
>>>f(3)
0.1411200080598672
比较极端的情况是一次导入模块中的所有对象,例如
from math import*
使用这种方式固然简单省事,但是并不推荐使用,一旦多个模块中有同名的对象,这种方式会导致混乱。
在测试自己写的模块时,可能需要频繁地修改代码并重新导入模块,可以使用imp模块或importlib模块的reload()函数。不论使用哪种方法重新加载模块,都要求该模块已经被正确加载,第一次导入和加载模块时不能使用reload()函数。
在导入模块时,Python首先在当前目录中查找需要导入的模块文件,如果没有找到,则从sys模块的path变量所指定的目录中查找,如果仍没有找到模块文件,则提示模块不存在。可以使用sys模块的path变量查看Pathon导入模块时搜索模块的路径,也可以使用append()方法向其中添加自定义的文件夹来扩展搜索路径。
在导入模块时,会优先导入相应的.pyc文件,如果相应的.pyc文件与.py文件时间不相符或不存在对应的.pyc文件,则导入.py文件并重新将该模块文件编译为.pyc文件。
在大的程序中可能需要导入很多模块,此时应按照下面的顺序来依次导入模块。
(1)导入Python内置模块和标准库,如math、os、sys、re。
(2)导入第三方扩展库,如PIL、numpy、scipy。
(3)导入自己定义和开发的本地模块。