0.python大小写敏感
1.输入:变量=input(“提示性文字”)
2.输出:print("字符串",seq="值与值之间的间隔,默认空格",end="结尾的输出,默认\n")
3.以缩进(四个空格)表示代码层次和框架,每条语句后没有;
4.注释:#表示单行注释,'''三单引号多行注释''',"""三双引号多行注释"""
5.命名规则:大小写字母、数字和下划线的组合,但首字母只能是大小写字母或下划线,不能使用空格。中文等非字母符号也可以作为名字
6.同步赋值语句:同时给多个变量赋值(先运算右侧N个表达式,然后同时将表达式结果赋给左侧)例 x,y=y,x
7.数据类型6种:数字类型、字符串类型,元组类型、列表类型,文件类型、字典类型;函数:type(x),返回x的类型,适用于所有类型的判断
1.三种数字类型:
1.关系:
三种类型存在一种逐渐“扩展”的关系:整数 -> 浮点数 -> 复数
不同数字类型之间可以进行混合运算,运算后生成结果为最宽类型
函数:int(), float(), complex()
2.整数类型:
0x, 0X开头表示16进制数
0b, 0B开头表示2进制数0o, 0O开头表示8进制数3.浮点数类型:
Python语言中浮点数的数值范围存在限制,小数精度也存在限制。这种限制与在不同计算机系统有关。
科学计数法使用字母“e”或者“E”作为幂的符号,以10为基数。科学计数法含义如下:<a>e<b> = a * 10 b
4.复数类型:
与数学中的复数概念一致, z = a + bj, a是实数部分,b是虚数部分,a和b都是浮点类型,虚数部分用j或者J标识
对于复数z,可以用z.real获得实数部分z.imag获得虚数部分
5.数字类型的运算:
运算符和运算函数 操作含义
x+y x与y之和x-y x与y之差x*y x与y之积x/y x与y之商x//y 不大于x与y之商的最大整数x%y x与y之商的余数+x x-x x的负值x**y x的y次幂abs(x) x的绝对值divmod(x,y) (x//y,x%y)pow(x,y) x的y次幂2.字符串类型:
1.字符串是用双引号""或者单引号''括起来的一个或多个字符。
2.字符串可以保存在变量中,也可以单独存在
3.字符串是一个字符序列:字符串最左端位置标记为0,依次增加。
4.字符串中的编号叫做“索引”单个索引辅助访问字符串中的特定位置格式为<string>[<索引>]
5.Python中字符串索引从0开始,一个长度为L的字符串最后一个字符的位置是L-1,Python同时允许使用负数从字符串右边末尾向左边进行反向索引,最右侧索引值是-1
6.可以通过两个索引值确定一个位置范围,返回这个范围的子串格式: <string>[<start>:<end>],start和end都是整数型数值,这个子序列从索引start开始直到索引end结束,但不包括end位置。
7.大多数数据类型都可以通过str()函数转换为字符串
8.字符串的操作:
+ 连接
* 重复<string>[ ] 索引<string>[ : ] 剪切len(<string>) 长度<string>.upper() 字符串中字母大写<string>.lower() 字符串中字母小写<string>.strip() 去两边空格及去指定字符<string>.split() 按指定字符分割字符串为数组<string>.join() 连接两个字符串序列<string>.find() 搜索指定字符串<string>.replace() 字符串替换for <var> in <string> 字符串迭代3.元组类型tuple:
1.概念:
元组是包含多个元素的类型,元素之间用逗号分割。例如:t1 = 123,456, “hello”
元组可以是空的,t2=()
元组包含一个元素时:t3=123,
元组外侧可以使用括号,也可以不使用
与字符串类型类似,可以通过索引区间来访问元组中部分元素。元组之间可以使用+号和*号进行运算
2.特点:
元组中元素可以是不同类型;一个元组也可以作为另一个元组的元素,此时,作为元素的元组需要增加括号,从而避免歧义
元组中各元素存在先后关系,可以通过索引访问元组中元素
元组定义后不能更改,也不能删除。代码更安全。
4.列表list类型:
1.基本概念:
列表(list)是有序的元素集合; 列表元素可以通过索引访问单个元素;
列表大小没有限制,可以随时修改
2.列表的操作:
< list1 > + < list2> 连接两个列表
< list > * < 整数类型 > 对列表进行整数次重复< list > [< 整数类型 >] 索引列表中的元素len( < seq > ) 列表中元素个数< list >[ < 整数类型 > : < 整数类型 >] 取列表的一个子序列for < var > in < list > : 对列表进行循环列举< expr > in < list > 成员检查,判断<expr>是否在列表中< list > . append ( x ) 将元素x增加到列表的最后
< list > . sort ( ) 将列表元素排序< list > . reverse ( ) 将序列元素反转< list > . index ( ) 返回第一次出现元素x的索引值< list > . insert ( i, x ) 在位置i处插入新元素x< list > . count ( x ) 返回元素x在列表中的数量< list > . remove ( x ) 删除列表中第一次出现的元素x< list > . pop ( i ) 取出列表中位置i的元素,并删除它字符串,可以通过split()函数,将字符串拆分成一个列表,默认以空格分割
5.文件类型
1.编码
ASCII码:
文本文件,单字节,7位,一般表示英文,数字,以及一些控制字符
Unicode:
对每种语言中字符设定统一且唯一的二进制编码每个字符两个字节长 65536 个字符的编码空间UTF-8编码
可变长度的Unicode的实现方式 中文三字节表示GBK编码
双字节编码2.文件基本处理
打开文件
建立磁盘上的文件与程序中的对象相关联,通过相关的文件对象获得
Open()
<variable> = open (<name>, <mode>)
<name>磁盘文件名<mode>打开模式打开模式:
r
只读。如果文件不存在,则输出错误w为只写(如果文件不存在,则自动创建文件)a表示附加到文件末尾rb只读二进制文件。如果文件不存在,则输出错误wb只写二进制文件,如果文件不存在,则自动创建文件。ab附加到二进制文件末尾r+读写 文件操作
读取,写入,定位,追加、计算等
read() 返回值为包含整个文件内容的一个字符串
readline() 返回值为文件下一行内容的字符串。
readlines() 返回值为整个文件内容的列表,每项是以换行符为结尾的一行字符串。
write():把含有本文数据或二进制数据块的字符串写入文件中。
writelines():针对列表操作,接受一个字符串列表作为参数,将它们写入文件。
遍历文件模板:
file = open (someFile, "r")
For line in file[.readlines]():
#处理一行文件内容
file.close()
关闭文件
切断文件与程序的联系,写入磁盘,并释放文件缓冲区
close()
6.字典类型
字典的概念
映射: 通过任意键值查找集合中值信息的过程python中通过字典实现映射字典是键值对的集合, 该集合以键为索引,同一个键信息对应一个值字典类型可以用其他对象类型作键,字典中的数据是无序排列的,字典类型通过键直接映射到值 字典的操作
为字典增加一项
dictionaryName[key] = value访问字典中的值
dictionaryName[key] 返回键key对应的值value删除字典中的一项
del dictionaryName[key]字典的遍历
for key in students: print (key + “:”+ str(stuendents[key]))遍历字典的键key
for key in dictionaryName.keys(): print.(key)遍历字典的值valuefor value in dictionaryName.values(): print.(value)遍历字典的项for item in dicitonaryName.items(): print.(item)遍历字典的key-valuefor item,value in adict.items(): print(item, value)是否一个键在字典中 in 或者 not in
keys():tuple 返回一个包含字典所有Key的列表
values():tuple 返回一个包含字典所有value的列表Items():tuple 返回一一个包含所有键值的列表clear():None 删除字典中的所有项目get(key):value 返回字典中key对应的值pop(key):val 删除并返回字典中key对应的值update(字典) 将字典中的键值添加到字典中8.Turtle库math库和random库:
1.函数库引用的方式:1.第一种方式:import <库名>例如:import turtle如果需要用到函数库中函数,需要使用:<库名>.<函数名>,2.第二种方式:from <库名> import <函数名>或from <库名> import *调用函数不需要<库名>,直接使用<函数名>
2.Turtle库:是Python语言中一个很流行的绘制图像的函数库
forward(distance) #将箭头移到某一指定坐标
left(angel) right(angel)penup() #提起笔,用于另起一个地方绘制时用,与pendown()配对使用goto(x,y)home()circle(radius)speed()3.math库:
函数 含义
圆周率pi π的近似值,15位小数自然常数e e的近似值,15位小数ceil(x) 对浮点数向上取整floor(x) 对浮点数向下取整pow(x,y) 计算x的y次方log(x) 以e为基的对数,log10(x) 以10为基的对数,sqrt(x) 平方根exp(x) e的x次幂,
degrees(x) 将弧度值转换成角度radians(x) 将角度值转换成弧度sin(x) 正弦函数cos(x) 余弦函数tan(x) 正切函数asin(x) 反正弦函数,x∊[-1.0,1.0]acos(x) 反余弦函数,x∊[-1.0,1.0]4.random库:
函数 含义
seed(x) 给随机数一个种子值,默认随机种子是系统时钟,当设定相同的种子后,每次调用随机函数后生成的随机数都是相同的。这就是随机种子的作用random() 生成一个[0, 1.0)之间的随机小数
uniform(a,b) 生成一个a到b之间的随机小数randint(a,b) 生成一个a到b之间的随机整数randrange(a,b,c) 随机生成一个从a开始到b以c递增的数choice(<list>) 从列表中随机返回一个元素shuffle(<list>) 将列表中元素随机打乱sample(<list>,k) 从指定列表随机获取k个元素5.蒙特卡洛(Monte Carlo)方法:
又称随机抽样或统计试验方法。当所求解问题是某种事件出现的概率,或某随机变量期望值时,可以通过某种“试验”的方法求解。
蒙特卡洛是利用随机试验求解问题的方法,提供了一个利用计算机中随机数和随机试验解决现实中无法通过公式求解问题的思路
9.控制结构:
三种基本结构:顺序结构、选择结构和循环结构
1.选择结构:
1.if语句格式: 语句格式如下if <condition>:
<body>
其中<condition>是条件表达式,<body>是一个或多个语个或多个语句序列。 先判断<condition>条件: true,则执行<body>,再转向下一条语句; false,则直接跳过<body>,转向下一条语句;
2.二分支语法结构如下:
if <condition>:
<statements>
else: <statements> Python解释器首先评估<condition>,如果<condition>是真的,if下面的语句被执行,如果<condition>是假的,else下面的语句被执行;3.多分支决策:使用if-elif-else描述多分支决策: Python轮流评估每个条件,来寻找条件为True的分支,并执行该分支下的语句;如果没有任何条件成立,else下面的语句被进行,else子句是可选的。
2.异常处理:
try:
<body>
except <ErrerType1>:
<handler1>
except <ErrerType2>:
<handler2>
[else:
<handler3>
finally:
<handler4>]
当Python解释器遇到一个try语句,它会尝试执行try语句体<body>内的语句
如果没有错误,控制转到try-except后面的语句,执行else语句如果发生错误,Python解释器会寻找一个符合该错误的异常语句,然后执行处理代码
无论是否发生错误,都执行finally语句
else和finally是可选的
3.循环结构:
1.for循环
Python可以使用for语句循环遍历整个序列的值for <var> in <sequence>: <body> 在for循环中,循环变量var遍历了队列中的每一个值,循
环的语句体为每个值执行一次。range:range(<结束数>) range(<开始数>,< 结束数>[,< 公比>])
range函数是一个用来创建等比数列的通用函数
range函数具有一些特性:
.如果<开始数>参数缺省,默认1;如果< 公比数>参数缺省,默认0。
.不包括< 结束数>,range函数返回一个左闭右开([left,right))的序列数
.step参数必须是非零整数,否则抛出VauleError异常。
for循环是需要提供固定循环次数的循环方式
2.while循环(无限循环,当型循环,条件循环,前测循环):
语法:while语句
while <condition>: <body>3. 注意:使用<Ctrl>-c来终止一个程序
Break 语句- 跳出最内层for/while 循环
continue语句, 其作用为结束本次循环
<for… else: …> <while… else: …>语句与循环的搭配使用,else:后的表达式在for循环列表遍历完毕后或while 条件语句不满足的情况下执行
4.循环构造方法交互式循环
moredate="yes"
while moredate[0]="y":
<body>
moredate=input("yes or no?")
哨兵循环
空字符串以””(引号中间没有空格)代表,可以作为哨兵,用户输入回车Python就返回空字符串
执行循环直到遇到特定的值,循环语句才终止执行的循环结构设计方法
xstr=input("xxx")
while xstr!="<哨兵>"
<body,对哨兵的操作>
xstr=input("xxx")
文件循环
line=file.readline()
while line!="":
<body,处理每一行>
line=file.readline()
5.死循环:
后测循环实现
Python没有后测循环语句,但可以通过while间接实现 思想是设计一个循环条件,直接进入循环体,循环至少执行一次,相当于后测循环break语句也可以用来实现后测循环
while语句体永远执行,if条件决定循环退出 另外:if语句体只包含一个语句时,break可以跟if在同一行半路循环
运用break中途退出循环,循环出口在循环体中部,被称为半路循环6.布尔表达式:
not>and>or
Python的布尔运算符是短路运算符
对于数字(整型和浮点型)的零值被认为是false,任何非零值都是true
bool类型仅仅是一个特殊的整数
对于序列类型来说,一个空序列被解释为假,而任何非空序列被指示为真
运算符的特性
x and y if x is false,return x,else,return y
x or y if x is true,return x,else,return y
not x if x is true,return false,else,return true
10.函数
1.函数定义:使用def语句
def <name>(<parameters>): <body>def所定义的函数在程序中未经调用不能直接执行,需要通过函数名调用才能够执行
2.返回:可以返回任意类型,一个或多个。也可以不返回,相当于返回none
return语句:结束函数调用,并将结果返回给调用者
return语句是可选的,可出现在函数体的任意位置 没有return语句,函数在函数体结束位置将控制权返回给调用方3.参数值函数的形参只接收了实参的值,给形参赋值并不影响实参
函数不能修改变量本身,如果变量是可变对象(如列表或者图形对象),返回到调用程序后,该对象会呈现被修改后的状态
4.递归
递归定义特征 :
有一个或多个基例是不需要再次递归的; 所有的递归链都要以一个基例结尾
900余次调用之后,到达默认的“递归深度的最大值”,终止调用
5.实例 turtle画树: