第一章关于Python

一、Python 语言的简述

Python语言是一种解释型、面向对象的编程语言,是一种开源语言。

Python属于动态类定义语言,也是一种强调类型语言。

二、Python 语言的特点

1、简单、高级

2、面向对象

3、可扩展性、免费和开源的

4、可移植型、可嵌入型、丰富的库

三、Python语言的应用范围

1、操作系统管理

2、科学计算

3、Web应用

4、图形用户界面(GUI)开发

5、其他,例如游戏开发等

第二章Python语言基础

一、语句

1、Python语句

例如:aString=”张三” #变量赋值

Print(aString) #调用函数,输出:张三

Python语句包括简单语句和复合语句

2、Python语句的书写规则

1)使用换行符分隔,一般情况下,一行一条语句

2)从第一列开始,前面不能有任何的空格,否则会产生语法错误。

注:

① 注释语句可以从任意位置开始

② 复合语句构造体必须缩进

3)反斜杠(\)用于一个代码跨越多行的情况

4)分号(;)用于在一行书写多条语句

例如:a=0;b=1;c=6

S=”abc”;print(s)

3、复合语句及其缩进书写规则

1)头部语句由相应的关键字开始,构造体语句则为下一行开始的一行或多行缩进代码。

例如:sum=0

for i in range(1,11)

sum=sum+1

print(i,end=’ ’)

2)通常缩进是相对头部语句缩进4个空格,也可以是任意空格,但同一构造体代码块的多条语句缩进的空格数必须一致。

3)如果条件语句、循环语句、函数定义和类函数定义比较短,可以放在同一行。

4、注释语句

1)# 注释掉一行

2)‘’’ ‘’’ 注释多行语句

5、空语句pass

要表示一个空的代码块,

例如:def do_nothing():

pass

二、表达式

1、表达式的组成

由操作数和运算符组成

1)表达式的书写规则。

2)乘号不可以省略

2、

3)表达式从左到右在同一个基准上书写

4)括号必须成对出现,只能使用圆括号,可以嵌套使用。

三、运算符

1、运算符概述

运算符用于在表达式中对一个或多个操作数进行计算并返回结果值。

2、运算符及其优先级

① or 或运算

② and 与运算

③ not x 非运算

④ in,not in 成员测试

⑤ is,is not 同一性测试

⑥ ** 指数/幂

四、标识符及其命名规则

1、标识符

① 标识符是变量、函数、类、模块和其他对象的名称。

② 标识符第一个字符必须是字母或下划线,其后可以是数字、字母、下划线

③ 关键字不可以做标识符

④ 标识符区分大小写

⑤ 以双划线开始和结束的名称通常具有特殊的含义,例如:_init_为类的构造函数。

⑥ 避免使用Python预定义标识符作为自定义标识符名。

2、保留关键字(预定义标识符)

例如:使用Python帮助系统查看关键字。

① 运行Python内置集成开发环境IDLE

② 进入帮助系统

help()

③ 查看关键字列表

help> keywords

④ 查看关键字if的帮助信息

help> if

⑤ 退出帮助系统

help> quit

3、命名规则

1)模块/包名:全小写字母,可使用下划线

2)函数名:全小写字母,可使用下划线

3)变量名:全小写字母,可使用下划线

4)类名:采用pascalCase命名规则,多个单词组成,每个单词的第一个字母大写,其他小写。

5)常量名:全大写字母,可以使用下划线

五、对象与引用

1、对象的含义:对象是某个类的实例,对象由唯一的id标识,对象可以通过标识符来引用,对象引用即指向对象实例的标识符。

2、对象的类型和标识

1)通过type()函数,可以判断一个对象的类型

2)通过ID()函数,可以获取一个对象的有唯一的id标识。

3、对象比较()和类型判别(is)

1)通过运算符判断两个变量指向的对象的值是否相等;

2)通过is运算符可以判断两个变量是否指向同一个对象;

4、不可变对象(immutable)和可变对象(mutable)

不可变对象一旦创建,就不能被修改,可变对象的内容可以被修改

六、变量和赋值

1、变量和数据类型

1)计算机程序处理的数据必须放入到内存,python所有的数据都是对象,每个对象都是某个类的实例,即数据对象具有数据类型。

2)指向对象的引用即变量

3)变量可以不限定数据类型

例如:

a=1 #1为int类型,变量a指向int类型的对象1

b=”11” #”11”为str类型,变量b指向str类型的对象”11”

Int和str类型不能直接相加,不会自动转换

2、变量的声明和赋值

变量名和赋值的格式:“变量名=要赋的值”

Python变量被访问之前必须被初始化,即赋值,否则会报错。

3、链式赋值语句

格式:“变量1=变量2=表达式” 等价于 变量2=表达式;变量1=变量2

链式赋值用于为多个变量赋同一个值

4、复合赋值语句

1)+=:sum+=item

2)-=:sum-=item

3)等等

5、删除变量

可以使用del语句删除不再使用的变量

6、系列解包赋值

1)Python支持数据组合类型。

2)Python支持把数据组合类型解包为对应相同个数的变量。

注:变量的个数必须与元组或列表元素个数一致,否则会产生错误

使用“啊a,b=b,a”的方式,可以优雅的实现两个变量值的交换。

七、数据类型

Python语言中每个对象都属于某个数据类型。

1、Python包含三种特殊的数据类型:NoneType,NotImplementedType,Ellipsis

1)NonoType

NoneType数据类型包含唯一值None,主要表示空值。

2)NotImplementedType

NotImplementedType数据类型包含唯一值NotImplemented,数值运算和比较运算时,如果对象不支持,则可能返回该值。

3)EllipsisType

EllipsisType数据类型包含唯一值Ellipsis,表示省略字符串符号。

2、数值数据类型

Python包括四种内置的数值类型

1)整数类型(int),用于表示整数。

2)布尔类型(bool),用于表示布尔逻辑值。例如:TRUE和False

3)浮点类型(float),用于表示实数。

4)复数类型(complex),用于表示复数。

3、序列数据类型

4、集合数据类型(集合不可变集)

集合数据类型表示若干个数据的集合,数据项目没有顺序,且不重复。

5、字典数据类型

用于表示键值对的字典。Python的内置字典数据为dict

6、其他数据类型

1)可调用数据类型

2)模块

模块类型是一个容器,是可以使用import语句加载的对象。

3)类

4)对象实例

5)解释器内置类型

八、类的声明和对象的创建于调用

1、类的声明

Class 类名:

类体

2、对象的创建和调用

格式:

anObject=类名(参数列表)

anObject.对象方法或者 anObject.对象属性

注:

1)类使用关键字class声明,类名为有效的标识符

2)类体中可以定义属于类的属性、方法等

3)创建对象后,可访问其属性、调用其方法

例如:

九、函数

1、函数的声明和调用

函数的声明格式: def 函数名([形参列表])

函数体

函数的调用格式: 函数名([实参列表])

注:1)函数使用关键字def声明,函数名为有效的标识符,形参列表为函数的参数。

2)声明函数的参数叫形参,调用函数时叫实参

3)函数可以使用return返回值。无返回值的函数相当于其他编程语言中的过程。

实例1:声明和调用函数sayHello()。

def sayHello(): #定义函数sayHello

print(‘Hello World!’) #函数体

print(‘这是一个例题。’) #函数体

sayHello() #调用函数sayHello

运行结果:

Hello World!

这是一个例题。

实例2:

2、内置函数

3、模块函数和import语句

通过import语句,可以导入module,然后使用module.function()的形式调用模块中的函数。例如:

import math

math.sin(2)

相当于 form math import sin

Sin(2)

4、输入和输出函数

input()函数提示用户输入

print()函数用于输出

例题:使用内置的输入输出函数实现用户交互

import datetime

sName=input(‘请输入你的姓名:’)

birthyear=int(input(‘请输入你的出生年份:’))

age=datetime.date.today().year- birthyear

print(‘你好!%s。你%d岁。’%(sName,age))

5、运行时提示输入密码

需要提示用户输入密码,可以使用模块getpass,以保证用户输入的密码在控制台不回显,getpass包括两个函数:

getpass.getpass(prompt=’Password:’,stream=None) #提示用户输入密码并返回

getpass.getuser() #获取当前登录用户名

十、模块和包

导入和使用模块功能的基本形式:

Import 模块名 #导入模块

模块名.函数名 #使用包含模块的全限定名称调用模块中的函数

模块名.变量名 #使用包含模块的全限定名称访问模块中的变量

例题:求解一元二次方程

import math

a=1

b=5

c=6

x1=(-b+math.sqrt(bb-4ac))/(2a)

x2=(-b-math.sqrt(bb-4ac))/(2a)

print(‘方程xx+5x+6=0的解为:’,x1,x2)

input和print

例题:

计算890分钟换成小时分钟

a=890

a=int(input(‘请输入一个整数:’))

hour=890//60

minute=890%60

print(a,‘分钟可以表示为’,hour,‘小时’,minute,‘分钟’)

print(’%d分钟可以表示为%d小时%d分钟’%(a,hour,minute))

print(str(a)+‘分钟可以表示为’+str(hour)+‘小时’+str(minute)+‘分钟’)

最后优化:

print(str(a)+‘分钟可以表示为’+str(a//60)+‘小时’+str(a%60)+‘分钟’)

Input默认输入的是字符串,要使用强制转换

小技巧:

在文件最后加上 Input(‘ ’) 在双击文件就可以运行了(不会闪一下就过去)