Python 在线基础课程

时间:2022-05-26 01:36:44

注释的两种方法:

单行注释以#开头

#Here are the comments

多行注释以'''开头和结尾

 

Python 在线基础课程

赋值操作

可以多赋值

比如交换x,y的值 x,y=y,x

输入函数

Input()函数从控制台获得用户输入

<变量>= input(<提示性文字>)

获得的用户输入以字符串形式保存在<变量>中

Python 在线基础课程

 

表达式

如果val = "28C"

则val[-1]是最后一个字符串"C"

前两个字符组成的子串可以用val[0:2]表示,它表示一个

从[0,2)的区间。

由于约定用户输入的最后一个字符是C或者F,之前是数

字,所以通过val[0:-1]来获取除最后一个字符外的字符串

 

分支语句

分支语句:控制程序运行,根据判断条件选择程

序执行路径。基本过程如下:

if <条件1成立>:

<表达式组1>

elif <条件2成立>:

<表达式组2>

……

elif <条件N-1成立>:

<表达式组N-1>

else:

<表达式组N>

 

赋值语句:使用等号给变量赋值

f=1.8*float(input_str[0:-1]) + 32

同步赋值语句:同时给多个变量赋值(先运算右侧N个表

达式,然后同时将表达式结果赋给左侧)

 

Python 在线基础课程

 

print()函数可以输出各种类型变量的值。

print()函数通过%来选择要输出的变量。

 

计数循环

基本过程如下

for i in range (<计数值>):

<表达式1>

第一种方式:

import <库名>

例如:import turtle

如果需要用到函数库中函数,需要使用:

<库名>.<函数名>

例>>>import turtle

>>>turtle.fd(100)

 

第二种方式:

from <库名> import <函数名>

from <库名> import *

调用函数不需要<库名>,直接使用<函数名>

例>>>from turtle import *

>>>fd(100)

 

 

Python语言中的类型:

数字类型、字符串类型

元组类型、列表类型

文件类型、字典类型

 

Python语言包括三种数字类型

整数类型

浮点数类型

复数类型

 

与数学中的整数概念一致,没有取值范围限制

pow(x, y)函数:计算x^y

整数类型

示例

1010, 99, -217

0x9a, -0X89 (0x, 0X开头表示16进制数)

0b010, -0B101 (0b, 0B开头表示2进制数)

0o123, -0O456 (0o, 0O开头表示8进制数)

 

浮点数类型有范围,一般为e-308,也可以认为没有范围

示例

0.0, -77., -2.17

96e4, 4.3e-3, 9.6E5 (科学计数法)

 

复数类型

与数学中的复数概念一致, z = a + bj, a是实数部分,b是虚数部分,a和b都是浮点类型,虚数部分用j或者J标识

示例:

12.3+4j, -5.6+7j

 

z = 1.23e-4+5.6e+89j(实部和虚部是什么?)

对于复数z , 可以用z.real 获得实数部分,

z.imag获得虚数部分

z.real = 0.000123 z.imag = 5.6e+89

 

数字类型的关系

三种类型存在一种逐渐"扩展"的关系:

整数-> 浮点数-> 复数

(整数是浮点数特例,浮点数是复数特例)

不同数字类型之间可以进行混合运算,运算后生成结果为最宽类型

123 + 4.0 = 127.0 (整数+ 浮点数= 浮点数)

 

数字类型的转换

三种类型可以相互转换

函数:int(), float(), complex()

但是不支持直接将一个复数转换为整数或者浮点数,可以将其image或者real函数转换为整数或者浮点数

函数:type(x),返回x的类型,适用于所有类型的判断

x//y 不大于x与y之商的最大整数

x%y x与y之商的余数

x**y x的y次幂

abs(x) x的绝对值

divmod(x,y) (x//y,x%y)

pow(x,y) x的y次幂

 

字符串类型

字符串是用双引号""或者单引号''括起来的一

个或多个字符。

字符串可以保存在变量中,也可以单独存在。

Python语言转义符: \

输出带有引号的字符串,可以使用转义符

使用\\ 输出带有转移符的字符串

字符串是一个字符序列:字符串最左端位置标记

为0,依次增加。

Python中字符串索引从0开始,一个长度为L的

字符串最后一个字符的位置是L-1

Python同时允许使用负数从字符串右边末尾向

左边进行反向索引,最右侧索引值是-1

可以通过两个索引值确定一个位置范围,返回这

个范围的子串

格式: <string>[<start>:<end>]

start和end都是整数型数值,这个子序列从索引

start开始直到索引end结束,但不包括end位置

字符串之间可以通过+或*进行连接

加法操作(+)将两个字符串连接成为一个新的

字符串

乘法操作(*)生成一个由其本身字符串重复连接

而成的字符串

Python 在线基础课程

 

字符串处理方法

Python 在线基础课程

可以通过for 和in 组成的循环来遍历字符串中

每个字符

格式如下:

for <var> in <string>:

 

元组类型

元组是包含多个元素的类型,元素之间用逗号分割。

例如:t1 = 123,456, "hello"

元组可以是空的,t2=()

元组包含一个元素时:t3=123,

元组外侧可以使用括号,也可以不使用

元组一旦定义不可改变,安全,想要改变可以用列表类型

列表类型

列表(list)是有序的元素集合;

列表元素可以通过索引访问单个元素;

列表与元组类似

列表中每个元素类型可以不一样

访问列表中元素时采用索引形式

列表与元组不同

列表大小没有限制,可以随时修改

Python 在线基础课程

Python 在线基础课程

数学库及其使用

math库中常用的数学函数

Python 在线基础课程

Python 在线基础课程

random库中常用的函数

Python 在线基础课程

相同的随机种子,会产生相同的伪随机序列,有利于验证程序执行。

简单条件基本形式

<expr> <relop> <expr>

<relop>是关系操作符<, <=, ==, >=, >, !=

使用=表示赋值语句,使用==表示等于

除数字外,字符或字符串也可以按照字典顺序用于条件比较

<condition>是布尔表达式,为bool类型,布尔值的真和假以字符True和False表示

 

 

二分支语法结构如下:

if <condition>:

<statements>

else:

<statements>

多分支决策

Python 在线基础课程

 

异常处理

采用分支结构处理错误

为了不让异常处理代码太多,设计异常机制

Python使用try…except…来进行异常处理,基本格式如下:

Python 在线基础课程

当Python解释器遇到一个try语句,它会尝试执行try语句体<body>内的语句

如果没有错误,控制转到try-except后面的语句

如果发生错误,Python解释器会寻找一个符合该错误的异常语句,然后执行处理代码

Python 在线基础课程

else和finally非必须项,不过else一定在finally之前,无异常会执行else, finally不管有无异常都会执行(清理工作,如文件不管怎么都需要最后关闭文件,网络上最后要关闭网络)。

运行结果

Python 在线基础课程

二次方程中处理

Python 在线基础课程

对于二次方程,还会有其他可能的错误,如:输入非数值类型 (NameError),输入无效的表达式(SyntaxError)等。此时可以用一个try语句配多个except来实现。

Python 在线基础课程

 

 

Python终极解决方案

-使用Python内置的max函数

Python 在线基础课程

    循环语句

Python 在线基础课程

    直接用的words列表,是可以增长的、

Python 在线基础课程

 

for循环-缺点

程序开始时必须提供输入数字总数

大规模数字求平均值需要用户先数清楚个数

for循环是需要提供固定循环次数的循环方式

Python提供了另一种循环模式即无限循环,不需要提前知道循环次数,即我们提到的当型循环也叫条件循环

 

无限循环

语法:while语句

while <condition>:

<body>

while语句中<condition>是布尔表达式

<body>循环体是一条或多条语句

当条件<condition>为真时,循环体重复执行

当条件<condition>为假时,循环终止

在while循环中,条件总是在循环顶部被判断,即在循环体执行之前,这种结构又被称为前测循环

break和continue可以使用

    

 

Break 语句- 跳出最内层for/while 循环

<for… else: …> <while… else: …>语句与循环的搭配使用,else:后的表达式在for循环列表遍历完毕后或while 条件语句不满足的情况下执行,有点类似于异常处理

Python 在线基础课程

交互式循环

Python 在线基础课程

哨兵循环

Python 在线基础课程

非字符为哨兵,如空字符串,输入字符串格式,转换

Python 在线基础课程

文件循环

假设每行只有一个数字

Python 在线基础课程

 

 

在这段代码中,循环变量line遍历文件的每一行,将每行都转成数字然后加到sum中。

通过Python的readline()来读取,readline()将文件的一行读取到字符串中。

在文件尾部,readline()返回的一个空字符串可以作为哨兵值。注意空行有换行符

Python中采用readline()方法的end-of-file循环模式:

Python 在线基础课程

 

循环嵌套

假设每行有被逗号分隔的数字

Python 在线基础课程

Python 在线基础课程

 

死循环的使用

Python 在线基础课程

后测循环实现

Python 在线基础课程

break语句也可以用来实现后测循环

Python 在线基础课程

Python 在线基础课程

 

布尔操作符

布尔操作符: and,or和 not

布尔运算符and和or用于组合两个布尔表达式,并产生一个布尔结果

<expr> and <expr>

<expr> or <expr>

not运算符是一个一元运算符,计算一个布尔表达式的反

not <expr>

Python 在线基础课程

等价于

Python 在线基础课程

 

函数定义

自定义函数:用户自己编写的

系统自带函数: Python内嵌的函数(如abs()、eval())、Python标准库中的函数(如math库中的sqrt())、图形库中的方法(如myPoint.getX())等

 

函数定义:使用def语句

def <name>(<parameters>):

<body>

形参只在函数内部有效

Python 在线基础课程

print()可输出空行

函数返回值

无返回值的return语句等价于return None

使用return语句返回多个值

 

Python不能用引用改变参数值,但是可以用返回值改变量值

列表中的值是可以改的

Python 在线基础课程

 

Python 在线基础课程

函数不能修改变量本身(即amounts)

 

Python的参数是通过值来传递的

如果变量是可变对象(如列表或者图形对象),返回到调用程序后,该对象会呈现被修改后的状态。

 

函数和递归

Python 在线基础课程

递归阶乘

Python 在线基础课程

 

 

Python列表有反转的内置方法

方法1:字符串转换为字符列表,反转列表,列表转换回字符串

方法2:递归

Python 在线基础课程

通过函数绘制树

Python 在线基础课程

 

turtle库的简单常用指令,请大家练习查询官方提供的turtle使用手册掌握以下命令的用法

forward(distance) #将箭头移到某一指定坐标

left(angel) right(angel)

penup() #提起笔,用于另起一个地方绘制时用,与pendown()配对使用

goto(x,y)

home()

circle(radius)

speed()

Python 在线基础课程

Python 在线基础课程

 

Python 在线基础课程

 

Python 在线基础课程

 

 

多棵树绘制

Python 在线基础课程

 

文件与字典

ord('A')得到字符的ascall码

chr(65)得到字符

s="中文字符串"

bs=s.encode("utf-8")

s=bs.decode("utf-8")

 

 

 

二进制文件ASCII码

照片、音乐、视频、计算机程序等

优点:

更加节省空间

采用二进制无格式存储

表示更为精确

 

注意:

文本文件是基于字符定长的ASCII;

二进制文件编码是变长的,灵活利用率要高;

不同的二进制文件解码方式是不同的。

 

 

文件操作

读取

写入

定位

其他:追加、计算等

Open()

<variable> = open (<name>, <mode>)

<name>磁盘文件名

<mode>打开模式

 

 

 

打开模式

r

 

只读。如果文件不存在,则输出错误

w

为只写(如果文件不存在,则自动创建文件)

a

表示附加到文件末尾

rb

只读二进制文件。如果文件不存在,则输出错误

wb

只写二进制文件,如果文件不存在,则自动创建文件。

ab

附加到二进制文件末尾

r+

读写

 

 

打开一个名为"numbers . dat"的文本文件

>>> infile = open ("numbers.dat", "r")

打开一个名为"music.mp3"的音频文件

>>>infile = open ("music.mp3", "rb")

 

read() 返回值为包含整个文件内容的一个字符串

readline() 返回值为文件下一行内容的字符串。

readlines() 返回值为整个文件内容的列表,每项是以换行符为结尾的一行字符串。

Python 在线基础课程

 

Python 在线基础课程

 

 

从计算机内存向文件写入数据

write():把含有本文数据或二进制数据块字符串写入文件中。

writelines():针对列表操作,接受一个字符串列表作为参数,将它们写入文件。

Python 在线基础课程

文件遍历

 

 

拷贝文件

根据数据文件定义行走路径

将文件由一种编码转换为另外一种编码

 

 

通用代码框架:

file = open (someFile, "r")

For line in file.readlines():

#处理一行文件内容

file.close()

简化代码框架:

file = open (someFile, "r")

For line in file:

#处理一行文件内容

file.close()

Python 在线基础课程