python 的运行:
python的解释执行器类型
CPython (c语音开发)
Jython (java语言开发)
IronPython (.net开发)
PyPy (python语音开发)
第一个python程序
print('hello world')
执行python程序
$ python3 文件路径名.py
常用文件后缀:
.py python语言
.c c语言
.cpp/.cc/.cxx c++语言
.java Java语言
在python交互模式下编写并执行代码
进入交互模式:
$ python3
退出交互模式:
>>>quit()
>>>exit()
或 ctrl + d(输入文件结束符)
或 ctrl + z
python注释
以#号开头,直至行尾
作用:
让注释内容不参加解释执行
sublime 注释快捷键 ctrl + /
python 程序的组成:
程序是由模块组成的
模块是由数据,函数,类等组成
函数由语句组成
语句由表达式组成
python 核心数据类型
数字(整型int,浮点型float,复数complex,布尔型bool)
字符串str,列表list等
整型数 int
整数是不带有小数部分的数字
整数的字面值表示方式
十进制0~9表示方式 123456
八进制0~7表示方式 0o11(9)
二进制0~1表示方式 0b111(7)
十六进制0~9,A~F表示方式 0xFF(255)
浮点数 float
浮点数是带有小数部分的数字(小数部分可以是0)
小数表示法:
3.14 3.0 .14
科学计数法:
格式:
小数 e/E (正负号) 指数
6.18E-1 等同于 0.618
2.9979e8 等同于 299790000.0
复数 complex
分为两个部分:
实部(real)
虚部(image)
虚部是以j或J结尾的数
1j 2J 1+2J 3-4j
布尔型数 bool
用来表示真和假两种状态的数字
True 表示真值 1(条件满足时成立)
False 表示假值 0(条件不满足时成立)
内置对象
空值 None
None是一个不存在的特殊对象
作用:
用来占位
变量解除绑定
表达式和运算符
表达式 expression
由一个数字或数字和运算符等组成
作用:
通常让计算机做一些事并返回结果
运算符:
算术运算符
+ 加
- 减
* 乘
/ 除
// 地板除
% 求余
** 幂
运算符的优先级
**
* / // %
+ -
混合类型自动升级
1+2.14 返回 浮点型3.14
3+4.0 返回 浮点型7.0
基本输出函数 print
格式:
print()
多个数据用逗号分隔开
变量 variable
变量是关联一个对象的标识符
标识符命名规则:
必须为字母下划线开头,后跟字母或下划线或数字
不能使用python关键字
说明:
python的变量名区分大小写
合法标识符(变量名)举例:
abc a1b2 _abc _Aba var
不合法:
1a2b $abd +a -b #AC @ ABC
python关键字:
True,False,None,is,del,if,elif....等
赋值语句
语法:
变量名 = 表达式
变量名1 = 变量名2 = 表达式
变量名1,变量名2 = 序列
作用:
创建一个变量,此变量用来绑定数据对象
修改一个变量的绑定关系,让其绑定另一个数据对象
说明:
当变量不存在时,创建该变量,同事将变量绑定在这个对象上
当变量存在时,改变此变量绑定的对象
一个变量只能绑定一个对象
两个变量可以同时绑定同一个对象
python中的自动化内存管理
a = 1000
b = 2000
a = a + b #释放a=1000重新绑定3000
c = a #c同时绑定在3000上
del 语句
作用:
用于删除变量,同时解除与对象的关联关系,如果可能能释放对象
语法:
del 变量名
在交互模式下查看当前作用域的所有变量
>>> help('__main__')
退出键:q
自动化内存管理和引用计数refrence count:
每个对象都会记录有几个变量绑定(引用)自身,当引用的数量为0时,则此对象将会被销毁(释放内存资源),此种自动化内存管理方式叫引用计数
is / is not 运算符
作用:
判断两个对象是否是同一个对象,当是同一对象时返回True,否则返回False
说明:
is not 返回值与is 相反
id(obj)函数
作用:
返回一个对象在内存中的地址
小整数对象池
Python中,整数-5~256的数永远会存在于小整数池中,不会释放且可反复使用
复合赋值算术运算符
运算符:
y += x 等同于 y = y + x
y -= x 等同于 y = y - x
y *= x 等同于 y = y * x
y /= x 等同于 y = y / x
y //= x 等同于 y = y // x
y %= x 等同于 y = y % x
y **= x 等同于 y = y ** x
day02
比较运算符
< <= > >= == !=
比较运算符返回值为布尔值
数值对象的构造(创建)函数
float(obj) 用字符串或数字转换为浮点数,如果不给实参则返回0.0
int(x=0,base=10) 用数字或字符串转换为整数,如果不给出实参则返回0
complex(i=0.0,j=0.0) 用数字创建一个复数
bool(x) 用x创建一个布尔值(True,False)
函数调用表达式
函数名(传参列表)
说明:
函数调用是表达式,此表达式一定会返回一个对象的引用关系。如果不需要返回值时,通常返回None对象的引用关系。
bool(obj)返回假值的情况
None
False
[] {} () ''
0 0.0 0j
内建函数
abs(x) 取x的绝对值
round(number,ndigits=0) 对数值进行四舍五入,ndigits是小数向右取整的位数,负数表示向左取整
pow(x,y,z=None) 相当于 x**y 或 x**y%z
help() 函数查看帮助
help(函数名或对象名)
>>> help(abs)
语句 statements
语句由一些表达式组成,通常一条语句可以独立执行来完成一部分事情并形成结果
python建议一条语句写在一行内
多条语句写在一行内需要用分号(;)分开
显示换行:
折行符 \(反斜杠)
折行符必须放在一行的末尾,来示意解释执行器下一行也是本行语句
隐式折行:
所有的括号的内容换行,成为隐式折行
括号包括() [] {}
基本输入函数 input
作用:
从标准输入设备上读取一个字符串(末尾的换行符会被删除)
格式:
input('提示字符信息')
说明:
返回输入的字符串(仅python3)
提示字符串可以为空
基本输出函数 print
作用:
将一系列的值以字符形式输出到标准输出设备,默认为终端
格式:
print(value,...,sep=' ',end='\n',file=sys.stdout,flush=False)
选项的关键字参数
sep:两个值之间的分隔符,默认为一个空格
end:输出完毕后在行尾追加字符串,默认为\n
if 语句:
作用:
主程序根据条件表达式选择性的执行某条或某些语句
语法:
if 真值表达式1:
语句块
elif 真值表达式2:
语句块
elif 真值表达式3:
语句块
...
else:
语句块
说明:
elif 可以有0个,或多个
else 可以有0个,或1个
if语句的真值表达式
if 100:
print('真值')
等同于
if bool(100)
print('真值')
if 语句真值表达式返回的对象要用bool(x)取值后在决定执行哪条语句
if 语句的嵌套
if语句本身是由多条子句组成的一条复合语句
条件表达式
语法:
表达式1 if 真值表达式 else 表达式2
作用:
根据真值表达式的取值(True/False)
来决定执行表达式1或表达式2,并返回结果
pass语句
作用:
通常用来填充语法空白
pass又名空语句
布尔运算
运算符:not and or
布尔非操作 not
语法:
not x
作用:
对表达式X进行布尔取非,如bool(x)为True则返回False,否则返回True
布尔与操作 and
语法:
x and y
注:x,y 代表表达式
作用:
优先返回假值对象
当x的布尔值为False时,返回x,否则返回y
布尔或操作 or
语法:
x or y
作用:
优先返回真值对象
当x为True时返回x,否则返回y
#默认返回值为0
x = int(input('请输入') or '0')
正负号运算符
+ (正号)
- (负号)
说明:
这是一元运算符(只有一个数据参加运算)
day03
字符串 str()
作用:
用来记录文本(文字)信息
字符串的表示方式:
在非注释中,凡是用引号括起来的部分都是字符串
'' 单引号
"" 双引号
''' 三单引号
""" 三双引号
单引号双引号的区别
单引号内双引号不算结束符
双引号内单引号不算结束符
三引号字符串的作用:
三引号字符串中的换行会自动转换为换行符
三引号内可以包括单引号或双引号
隐式字符串的拼接
s = 'abcd'"1234"
print(s) #'abcd1234'
用转译序列代替特殊字符
字符串字面值中,用字符反斜杠(\)后跟一些字符串代表特殊的一个字符
反斜杠转义字符表:
\'
\"
\\
\n 换行
\r 返回光标至行首 #会覆盖后面的
\t 水平制表符 #Tab
\v 垂直制表符
\f 换页
\b 倒退 #退格
\0 空字符串,字符值为0
\xXX XX为两位十六进制表示的字符
\uXXXX XXXX为四个十六进制表示的unicode16字符
\UXXXXXXXX 8个十六进制表示的unicode32字符
ASCII 编码
$ man ascii
常用的ASCII编码
'0' 48 0x30
'A' 65 0x41
'a' 97 0x61
Unicode
统一编码,分为Unicode16和Unicode32
一个十六进制4个位,一个字节8个位
序列
字符串就是序列
求序列长度函数len
len(x) 返回字符串的字符个数
raw 字符串(原始字符串)
格式:
r'字符串内容'
r'字符串内容'
r'字符串内容'
字符串的运算
+ 加号用于字符串的拼接
* 运算符用于生成重复的字符串
字符串的比较运算
运算符:
> >= == < <= !=
规则
依次按编码值进行比较,直到最短的字符串结束为止,返回值True/False
字符串的索引操作
python的字符串是不可以改变的字符序列
索引 index
语法:
字符串[index]
说明:
python 序列都可以用索引来访问序列中的对象
python 序列的正向索引是从0开始的,第二个索引为1,最后一个索引为len(s)-1
python 序列的反向索引是从-1开始的,-1代表最后一个,-2倒数第二个,第一个是-len(s)
切片:
作用:
从一个字符串序列中取出相应的元素重新组成一个字符串序列
语法:
字符串序列[begin:end:step]
说明:
1.开始索引是切片开始切下的位置,0代表第一个元素,1代表第二个元素,-1代表最后一个元素
2.结束索引是切片的终止索引(但不包括终止点)
3.步长是切片每次获取完当前元素移动的方向和偏移量
1)没有步长,相当于取值完成后向右移动一个索引的位置(默认为1)
2)当步长为正数时,取正向切片
步长默认为1,开始索引默认为0,结束索引默认为len(s)
步长为代表下一次索引的取值的增长值
3)当步长为负数的时,取反向切片
默认起始位置是最后一个元素,终止位置是第一个元素的前一个位置
python3中常用于序列的函数
len(x) 返回序列的长度
max(x) 返回序列的最大值
min(x) 返回序列的最小值
字符串编码转换函数
ord(c) 返回一个字符的unicode值
chr(i) 返回这个整数值所对应的字符
整数转字符串函数:
bin(i) 将整数转换为二进制字符串
oct(i) 将整数转换为八进制字符串
hex(i) 将整数转换为十六进制字符串
字符串的构造函数:
str(obj='') 将对象转换为字符串
常用的字符串方法(method)
语法:
对象.方法名(方法传参)
1.输入一个字符串用变量s绑定
1)判断有几个空格字符
2)将原有字符串左右空格字符去掉,并打印剩余字符个数
3)判断输入是否有数字
4)如果是数学,判断数字是否大于100
2.输入三行文字,让这三行文字在一个方框内居中显示
如输入:
hello!
I'm studing python!
I like python
显示如下:
+-------------------+
| hello! |
|I'm studing python!|
| I like python |
+-------------------+
不要输入中文
day04
ASCII和unicode的区别
ASCII用8个位表示文字,最高为一定为0,低7位表示数值
unicode16 是有16个位组成的(0-65535)0x0000~0xFFFF
字符串的格式化表达式
作用:
生成一定格式的字符串
语法格式:
格式字符串 % 参数值
格式字符串 % (参数值1,参数值2,...)
说明:
格式化字符串中以%开头的为占位符,占位符的位置将用参数值替换
格式化字符串中的占位符和类型码:
%s 字符串,使用str()转为字符串
%r 字符串,使用repr()转为字符串
%c 整数转为字符串,使用chr(i)函数
%d 十进制整数
%o 八进制整数
%x 十六进制整数(字符a-f小写)
%X 十六进制整数(字符A-F大写)
%e 指数型浮点数(e小写) eg:2.9e+10
%E 指数型浮点数(E大写) eg:2.9E+10
%f,%F 浮点十进制形式
%g,%G 进制形式浮点或指数浮点自动转换
%% 等同于一个%字符
占位符和类型码之间的格式语法:
% [- + 0 宽度.精度] 类型码
- 左对齐
+ 显示正号
0 左侧空白处补零
宽度:整个数据输出的宽度
精度:保留小数点后多少位,默认6位
示例:
'%5d' % 123 # ' 123'
'%+5d' % 123 # ' +123'
'%-5d' % 123 # '123 '
'%05d' % 123 # '00123'
'%7.2f' % 3.1415926535897932 # ' 3.14'
循环语句:
while 语句
for 语句
while 语句
作用:
根据一定条件,重复的执行一条语句或多条语句
语法:
while 真值表达式:
语句块1
else:
语句块2
说明:
1.先执行真值表达式,测试布尔值是否为True/False
2.如果真值表达式测试值为True,则执行语句1,然后再返回到第一步,重复进行测试
3.如果真值表达式测试值为False,则执行else子句中的语句块2,然后结束此while语句,如果没有else子句,则直接结束此while语句的执行
注:
else 子句部分可以省略
while 语句的注意事项
要控制循环真值表达式的值来防止死循环
通常用真值表达式的循环变量来控制循环条件
通常在循环语句块内改变循环变量来控制循环次数和变量走向
while的循环嵌套
while 语句本身是语句,和其他语句一样,可以嵌套放入任何复合语句中
break 语句
作用:
用于循环语句(while,for)中,用来终止当前循环语句执行
说明:
当break语句执行后,此循环语句break之后的语句将不再执行
break语句通常和if 语句组合使用
break语句终止循环时,循环语句else子句的语句将不会执行
break语句只能终止当前循环语句的执行,如果有循环嵌套时,不会跳出嵌套的外重循环
break语句只能在循环语句(while/for)内部使用
死循环
指循环条件一直成立的循环
死循环通常用break语句来终止循环
死循环的else子句永远不会执行
练习
1.任意输入一些数,当输入负数时结束输入
当输入完成后,打印输入这些数的和
2.写程序求
Sn = 1 + 1/2 + 1/4 +....+ 1/(2**n)
求当前等于100时,Sn
3.用while语句实现打印三角形,输入一个整数,表示三角形的宽度和高度
如:
输入:4
打印:
*
**
***
****
day05
for 语句
作用
用来遍历可迭代对象的数据元素
可迭代对是指能依次获取数据的元素对象
可迭代对象包括
字符串str()
列表list
元组 tuple
字典 dict
...
for 语法
for 变量列表 in 可迭代对象:
语句块1
else:
语句块2
说明:
当循环内部用break语句终止循环时,else子句部分的语句不会执行
else 语句当可迭代对象不能提供数据时执行
range() 函数:
格式:
range(start,end[,step])
生成一个起止为start,结束为end,步长为step的可迭代对象
作用:
用来创建一个生成一系列整数的可迭代对象(也叫整数序列生成器)
说明:
range函数调用返回的对象可用于for语句来进行一次迭代取出其中的整数
for 语句嵌套
continue 语句
作用:
用于循环语句中(while/for),不在执行本次循环内continue之后的语句,重新开始一次新的循环
说明:
1.在while语句中执行continue语句,将会直接跳转到while语句的真值表达式处理重新判断循环条件
2.在for 语句中执行continue语句,将会从可迭代对象中取下一个元素绑定改变了后再次进行循环
示例:continue.py
for x in range(5):
if x == 2:
continue
print(x)
循环总结:
语句
while 语句
for 语句
字符串
range函数返回对象
可迭代对象
break 语句:结束当前循环语句的执行
continue 语句:结束本次循环,重新开始新的循环
列表 list
1.列表是一种容器(通常用来存储计算机的数据对象)
2.列表是可以被改变的序列
3.类别是由一系列特定元素组成的,元素与元素之间可能没有任何的关联关系,但他们之间由先后顺序关系
创建空列表的字面值方式
L = [] #L绑定空列表
创建非空列表的字面值方式
L = [1,2,3,4] #
L = ['北京','上海','深圳']
L = [1,'TWO',3.14,[1,2,3]]
列表的构造函数list (只能接收一个参数,可迭代对象)
list() 生成一个空的列表,等同于[]
list(iterable) 用可迭代对象创建一个列表
列表的运算
运算符:
+ += * *=
+ 用于拼接列表
+= 用于将右侧的 可迭代对象 的数据追加到原列表中
* 用于生成重复的列表
列表的比较运算
运算符:
< <= > >= == !=
比较规则
同字符串比较规则完全相同
列表是可迭代对象
列表的in / not in 运算符
判断一个元素是否存在于列表中,如果存在返回True,否则返回False
in 和 not in 返回值相反
1.输入任意行文字,存于列表L中,当不输入任何内容直接回车后结束输入
1)打印L列表中的内容
2)计算一共输入多少行
3)计算一共输入了多少字符
2.输入一个整数(代表树干的高度)
打印如下:
输入:
*
***
*
*
3.写一个程序,任意输入一个整数,判断这个数是否为素数(质数)
4.算出100~1000以内的水仙花数
水仙花数:153 = 1**3 + 5**3 + 3**3
153,370