字面量
字面量:在代码中,被写下来的的固定的值,称之为字面量
常用的值类型:
- 数字:1.整数 2.浮点数 3.复数 4.布尔
- 字符串:
- 列表
- 元组
- 集合
- 字典
字符串:又称文本,是由任意数量的字符如中文,英文,各类符号,数字等组成的。所以叫做字符的串
注释
注释:在程序中对程序代码进行解释说明的文字
注释的分类:
-
单行注释:以#开头,#右边的所有文字当作说明,而不是真正要执行的程序,起辅助说明作用
-
多行注释:以一对三个双引号引起来(“””注释内容““”)来解释说明一段代码的作用使用方法
注意:#号和注释内容一般建议以一个空格隔开
变量
变量:在程序运行时,能储存计算结果的或表示值的抽象概念。简单的说,变量就是在程序运行时,记录数据用的
语法:变量名称=变量的值
数据类型
类型 | 描述 | 说明 |
---|---|---|
string | 字符串类型 | 用引号引起来的数据就是字符串 |
int | 整型(有符号) | 数字类型,存放整数 |
float | 浮点型(有符号) | 数字类型,存放小数 |
type()语句
作用:得到数据的类型
语法:
type(被查看类型的数据)
数据类型的转换
数据类型之间,在特定的场所下,是可以互相转换的
语句(函数) | 说明 |
---|---|
int(x) | 将x转换为一个整数 |
float(x) | 将x转换为一个浮点数 |
str(x) | 将x转换为字符串 |
这三个语句都是带有结果的(返回值)我们可以用print直接输出,或用变量储存结果值
标识符
作用:在编程的时候所用的的一系列名字,用于给变量、类、方法命名
标识符命名中,只允许出现:
-
英文
-
中文
-
数字
-
下划线
这四类元素,其余任何元素都不被允许
注意:1.不推荐使用中文 2.数字不可以开头3.不可使用关键字
运算符
算术运算符
运算符 | 描述 | 示例 |
---|---|---|
+ | 加 | 两个对象相加a+b输出结果30 |
- | 减 | 得到负数或是一个数减去另一个数a-b输出结果-10 |
* | 乘 | 两个数相乘或是返回一个被重复若干次的字符串a*b输出结果-10 |
/ | 除 | b/a输出结果2 |
// | 取整数 | 返回商的整数部分9//2输出结果4,9.0//4.0输出结果4.2 |
% | 取余 | 返回除法的余数b%a输出结果0 |
** | 指数 | a**b为10的2次方,输出结果100 |
赋值运算符
运算符 | 描述 | 实例 |
---|---|---|
= | 赋值运算符 | 把=号右边的结果赋给左边的变量 |
复合运算符
运算符 | 描述 | 示例 |
---|---|---|
+= | 加法赋值运算符 | c+=等效于c=c+a |
-= | 减法赋值运算符 | c-=a等效于c=c-a |
*= | 乘法赋值运算符 | c*=a等效于c=c*a |
/= | 除法赋值运算符 | c/=a等效于c=c/a |
%= | 取模赋值运算符 | c%=a等效于c=c%a |
**= | 幂赋值运算符 | c**=a等效于c=c**a |
//= | 取整赋值运算符 | c//=a等效于c=c//a |
字符串扩展
字符串的三种定义方式
-
单引号定义法name=‘内容’`
-
双引号定义法
name=“内容”
-
三引号定义法
name="""内容"""
- 单引号定义法,可以内含双引号
- 双引号定义法,可以内含单引号
- 可以使用转义字符(\)来将引号接触效用,变成普通字符
##字符串拼接
如果我们有两个字符串字面量,可以将其拼接成一个字符串,通过加号即可完成print(“内容”+“内容”)
不过一般,单纯的两个字符串看起来很呆,一般,字面量和变量或变量和变量之间会使用拼接
字符串格式化
message="%s"%name
其中的%s
- %表示:我要占位
- s 表示:将变量变成字符串放入占位的地方
所以,综合起来的意思是:我先占位个位置,等一会有个变量过来,我把它变成字符串放到占位的地方
字符串格式化2
语法:f"内容{变量}"
格式化的精度控制
我们可以使用辅助符号"m.n"来控制数据的宽度和精度
- m,控制宽度,要求是数字(很少使用),设置的宽度小于数字本身,不生效
- .n,控制小数点的精度,要求是数字,会进行小数的四舍五入
示例:
-
%5d:表示将整数的宽度控制在5位,不足用空格补齐
-
%5.2f:表示将宽度控制在5,将小数点精度设置为2,小数点和小数部分也算入宽度计算
-
%.2f:表示不限制宽度,只设置小数点精度为2
表达式的格式化
表达式:一条具有明确执行结果的语句
再无需要使用变量储存数据的时候,可以直接格式化表达式,简化代码数据输入
input语句(函数)
-
数据输出:print
-
数据输入:input
使用:
- 使用input()语句可以从键盘获取输入
- 使用一个变量接收(储存)input语句获取的键盘输入数据即可
布尔类型
布尔类型的字面量:
运算符 | 描述 | 示例 |
---|---|---|
== | 判断内容是否相等,满足为True,不满足为Flase | 如a=3,b=3,则(a==b)为True |
!= | 判断内容是否不相等,满足为True,不满足为Flase | 如a=1,b=3,则(a!=b)为True |
> | 判断运算符左侧内容是否大于右侧,满足为True,不满足为Flase | 如a=7,b=3则(a>b)为True |
< | 判断运算符左侧内容是否小于右侧,满足为True,不满足为Flase | 如a=3,b=7则(a<b)为True |
>= | 判断运算符左侧内容是否大于等于右侧,满足为True,不满足为Flase | 如a=3,b=7则(a>=b)为True |
<= | 判断运算符左侧内容是否小于等于右侧,满足为True,不满足为Flase | 如a=3,b=7则(a<=b)为True |
if判断语句
if 要判断的条件:
条件成立时,要做的事
if else语句
if条件:
满足条件时,要做的事
else:
不满足条件时要做的事
if elif else语句
if 条件1:
满足条件1应做的事
elif 条件2:
满足条件2时要做的事
.....
else:
所有条件都不满足要做的事
判断语句的嵌套
嵌套的关键点,在于:空格缩进
通过空格缩进,来决定语句之间的:层次关系
循环语句
while循环语句
while 条件:
满足条件时,要做的事
只要条件满足,会无限循环下去
while循环嵌套
- 同判断语句的嵌套循环一样,循环语句的嵌套,要注意空格的缩进
- 基于空格缩进来决定层次关系
- 注意条件的设置,避免出现无限循环(除非真的需要无限循环)
for循环
- while循环的循环条件是自定义的,自行控制循环条件
- for循环是一种“轮询”机制,是对一批内容进行“逐个处理”
语法:
for(临时变量 in 待处理数据集)
循环满足条件时执行的代码
遍历字符
#定义字符串name
name="itheima"
#for循环字符字符串
for x in name:
print(x)
range
for循环语句,本质上遍历:序列类型
语法1:
range(num)
获取一个从0开始,到num结束的数字序列(不包含num本身)
语法2:
range(num1,num2)
获得一个从num1开始,到num2结束的数字序列(不包含num2本身)
语法3:
range(num1,num2,step)
获得一个从num1开始,到num2结束的数字序列(不包含num2本身)
数字之间的步长,以step为准(step默认为1)
for循环的变量作用域
- 实际上是可以访问的
- 在编程规范上,是不允许,不建议这么做的
循环中断
continue
作用:中断本次循环,直接进入下一次循环
用于for循环和while循环效果一致
for in range(1,100):
语句1
continue
语句2
break
作用:直接结束循环
用于for循环和while循环效果一致
for in range(1,100):
语句1
break
语句2
语句3
函数
函数:是组织好的,可重复使用的,用来实现特定功能的代码段
函数的定义
def 函数名 (传入参数):
函数体
return 返回值
函数使用步骤:
- 先定义函数
- 后调用函数
注意事项:
- 参数不需要,可以省略
- 返回值不需要可以省略
函数的传入参数
语法:
#定义函数
def add(x,y):
result=x+y
print(f"{x}+{y}的结果是:{resulit}")
#调用函数
add(5,6)
- 函数定义中,提供的x和y,称之为:形式参数(形参),表示函数声明将要使用2个参数
- 参数之间使用逗号进行分隔
- 函数调用中,提供的5和6,称之为:实际参数(实参),表示函数执行时真正使用的参数值
- 传入的时候,按照顺序传入数据,使用逗号分隔
返回值
所谓返回值就是函数完成事情后,最后调用者的结果
None
None表示空的,无实际意义的意思
函数返回的None,就表示,这个函数没有返回什么实际内容
None类型的应用场景
-
用在函数无返回值上
-
用在if判断上
- 在if判断中,None等同于False
- 一般用于在函数中主动返回None
-
用于声明无内容的变量上
- 定义变量,但暂时不需要变量有具体值,可以用None来代替
#暂不赋予变量具体值 name=None
函数说明文档
可以给函数添加说明文档,辅助理解函数的作用
语法
def func(x,y):
""""""
函数说明
:param x: 形参x的说明
:param y: 形参y的说明
:return: 返回值的说明
""""""
函数体
return 返回值
- 内容应写在函数体之前
函数的嵌套应用
一个函数里面又调用了另一个函数
def func_b():
print("---2---")
def func_a():
print("---1---")
func_b()
print("---3---")
#调用函数func_a
func_a()
执行流程
函数A中执行到调用函数B的语句,会将函数B全部执行完成后,继续执行函数A的剩余内容
变量的作用域
- 局部变量
- 全局变量
所谓局部变量就是定义在函数体内部的变量,即只在函数体内部生效
局部变量作用:在函数体内,临时保存数据函数执行完后,则销毁变量数据
全局变量就是指在函数体内外都能生效的变量
- 使用global关键字,global变量
列表
基本语法:
#字面量
[元素1,元素2,元素3·····]
#定义变量
变量名称=[元素1,元素2·····]
#定义空列表
变量名称=[]
变量名称=list()
列表内的每一个数据,称之为元素
- 以[]作为标识
- 列表内每一个元素之间用逗号隔开
下标索引:
列表的每一个元素,都有编号称之为下标索引
从前向后的方向,编号从0开始递增
从后向前的方向,编号从-1开始递减
查找某元素的下标:
列表.index(元素)
#如果元素不存在:报错
修改特定位置元素的值
列表[]=
插入元素
列表.insert(下标元素)
尾部追加元素
列表.append()
删除指定下标元素
del 列表[下标]
列表.pop() 可以取出删除元素
删除元素在列表中第一个匹配项
列表.remove(元素)
清定列表
列表.count(元表)
统计列表内某元素的数量
列表.clear()
统计列表内某元素的数量
列表.count(元素)
统计列表内元素
len()
OS
序号 | 方法 | 描述 |
---|---|---|
1 | os.access(path, mode) | 检验权限模式 |
2 | os.chdir(path) | 改变当前工作目录 |
3 | os.chflags(path, flags) | 设置路径的标记为数字标记 |
4 | os.chmod(path, mode) | 更改权限 |
5 | os.chown(path, uid, gid) | 更改文件所有者 |
6 | os.chroot(path) | 改变当前进程的根目录 |
7 | os.close(fd) | 关闭文件描述符 fd |
8 | os.closerange(fd_low, fd_high) | 关闭所有文件描述符,从 fd_low (包含) 到 fd_high (不包含), 错误会忽略 |
9 | os.dup(fd) | 复制文件描述符 fd |
10 | os.dup2(fd, fd2) | 将一个文件描述符 fd 复制到另一个 fd2 |
11 | os.fchdir(fd) | 通过文件描述符改变当前工作目录 |
12 | os.fchmod(fd, mode) | 改变一个文件的访问权限,该文件由参数fd指定,参数mode是Unix下的文件访问权限 |
13 | os.fchown(fd, uid, gid) | 修改一个文件的所有权,这个函数修改一个文件的用户ID和用户组ID,该文件由文件描述符fd指定 |
14 | os.fdatasync(fd) | 强制将文件写入磁盘,该文件由文件描述符fd指定,但是不强制更新文件的状态信息 |
15 | os.fdopen(fd[, mode[, bufsize]]) | 通过文件描述符 fd 创建一个文件对象,并返回这个文件对象 |
16 | os.fpathconf(fd, name) | 返回一个打开的文件的系统配置信息。name为检索的系统配置的值,它也许是一个定义系统值的字符串,这些名字在很多标准中指定(POSIX.1, Unix 95, Unix 98, 和其它 |
17 | os.fstat(fd) | 返回文件描述符fd的状态,像stat()。 |
18 | os.fstatvfs(fd) | 返回包含文件描述符fd的文件的文件系统的信息,Python 3.3 相等于 statvfs()。 |
19 | os.fsync(fd) | 强制将文件描述符为fd的文件写入硬盘 |
20 | os.ftruncate(fd, length) | 裁剪文件描述符fd对应的文件, 所以它最大不能超过文件大小。 |
21 | os.getcwd() | 返回当前工作目录 |
22 | os.getcwdb() | 返回一个当前工作目录的Unicode对象 |
23 | os.isatty(fd) | 如果文件描述符fd是打开的,同时与tty(-like)设备相连,则返回true, 否则False。 |
24 | os.lchflags(path, flags) | 设置路径的标记为数字标记,类似 chflags(),但是没有软链接 |
25 | os.lchmod(path, mode) | 设置路径的标记为数字标记,类似 chflags(),但是没有软链接 |
26 | os.lchown(path, uid, gid) | 更改文件所有者,类似 chown,但是不追踪链接。 |
27 | os.link(src, dst) | 创建硬链接,名为参数 dst,指向参数 src |
28 | os.listdir(path) | 返回path指定的文件夹包含的文件或文件夹的名字的列表 |
29 | os.lseek(fd, pos, how) | 设置文件描述符 fd当前位置为pos, how方式修改: SEEK_SET 或者 0 设置从文件开始的计算的pos; SEEK_CUR或者 1 则从当前位置计算; os.SEEK_END或者2则从文件尾部开始. 在unix,Windows中有效 |
30 | os.lstat(path) | 像stat(),但是没有软链接 |
31 | os.major(device) | 从原始的设备号中提取设备major号码 (使用stat中的st_dev或者st_rdev field)。 |
32 | os.makedev(major, minor) | 以major和minor设备号组成一个原始设备号 |
33 | os.makedirs(path[, mode]) | 递归文件夹创建函数。像mkdir(), 但创建的所有intermediate-level文件夹需要包含子文件夹。 |
34 | os.minor(device) | 从原始的设备号中提取设备minor号码 (使用stat中的st_dev或者st_rdev field )。 |
35 | os.mkdir(path[, mode]) | 以数字mode的mode创建一个名为path的文件夹.默认的 mode 是 0777 (八进制)。 |
36 | os.mkfifo(path[, mode]) | 创建命名管道,mode 为数字,默认为 0666 (八进制) |
37 | os.mknod(filename[, mode=0600, device]) | 创建一个名为filename文件系统节点(文件,设备特别文件或者命名pipe) |
38 | os.open(file, flags[, mode]) | 打开一个文件,并且设置需要的打开选项,mode参数是可选的 |
39 | os.openpty() | 打开一个新的伪终端对。返回 pty 和 tty的文件描述符 |
40 | os.pathconf(path, name) | 返回相关文件的系统配置信息 |
41 | os.pipe() | 创建一个管道. 返回一对文件描述符(r, w) 分别为读和写 |
42 | os.popen(command[, mode[, bufsize]]) | 从一个 command 打开一个管道 |
43 | os.read(fd, n) | 从文件描述符 fd 中读取最多 n 个字节,返回包含读取字节的字符串,文件描述符 fd对应文件已达到结尾, 返回一个空字符串。 |
44 | os.readlink(path) | 返回软链接所指向的文件 |
45 | os.remove(path) | 删除路径为path的文件。如果path 是一个文件夹,将抛出OSError; 查看下面的rmdir()删除一个 directory。 |
46 | os.removedirs(path) | 递归删除目录。 |
47 | os.rename(src, dst) | 重命名文件或目录,从 src 到 dst |
48 | os.renames(old, new) | 递归地对目录进行更名,也可以对文件进行更名。 |
49 | os.rmdir(path) | 删除path指定的空目录,如果目录非空,则抛出一个OSError异常。 |
50 | os.stat(path) | 获取path指定的路径的信息,功能等同于C API中的stat()系统调用。 |
51 | os.stat_float_times([newvalue]) | 决定stat_result是否以float对象显示时间戳 |
52 | os.statvfs(path) | 获取指定路径的文件系统统计信息 |
53 | os.symlink(src, dst) | 创建一个软链接 |
54 | os.symlink(src, dst) | 创建一个软链接 |
55 | os.tcgetpgrp(fd) | 设置与终端fd(一个由os.open()返回的打开的文件描述符)关联的进程组为pg。 |
56 | os.tempnam([dir[, prefix]]) | Python3 中已删除。返回唯一的路径名用于创建临时文件。 |
57 | os.tmpfile() | Python3 中已删除。返回一个打开的模式为(w+b)的文件对象 .这文件对象没有文件夹入口,没有文件描述符,将会自动删除。 |
58 | os.tmpnam() | Python3 中已删除。为创建一个临时文件返回一个唯一的路径 |
59 | os.ttyname(fd) | 返回一个字符串,它表示与文件描述符fd 关联的终端设备。如果fd 没有与终端设备关联,则引发一个异常。 |
60 | os.unlink(path) | 删除文件路径 |
61 | os.utime(path, times) | 返回指定的path文件的访问和修改的时间。 |
62 | os.walk(top[, topdown=True[, οnerrοr=None[, followlinks=False]]]) | 输出在文件夹中的文件名通过在树中游走,向上或者向下。 |
63 | os.write(fd, str) | 写入字符串到文件描述符 fd中. 返回实际写入的字符串长度 |
64 | os.path 模块 | 获取文件的属性信息。 |
65 | os.pardir() | 获取当前目录的父目录,以字符串形式显示目录名。 |
66 | os.replace() | 重命名文件或目录。 |
初识类
- 设计表格,称之为:设计类(class)
- 打印表格,称之为:创建对象
- 填写表格,称之为:对象属性赋值
类的定义和使用
- class是关键字,表示要定义类了
- 类的属性,即定义在类中的变量(成员数量)
- 类的行为,即定义在类中的函数(成员方法)
class 名:
变量;
方法;
语法:
对象=类名称()
类中:
- 不仅可以定义属性用来记录数据
- 也可以顶函数,用来记录行为
其中:
- 类中定义的属性(变量),我们称之为:成员变量
- 类中定义的行为(函数),我们称之为:成员方法
def 方法名(self,形参1,.....,形参N)
方法体
self关键字是成员方法定义是,必须填写的
- 它用来表示类对象自身的意思
- 当我们使用类调用方法时,self会自动被python传入
- 方法内部,想要访问类的成员变量,必须使用self
传参时,可以忽略它
stu.name=""//调用成员变量
stu.方法名()//调用成员方法
类和对象
关系:
类是程序中的“设计图纸”
对象是基于图纸生产的具体实体
面向对象编程:
适用对象进行编程。即,设计类,基于创建类对象,并使用对象来完成具体的工作