python基础
字面量
被写下来的固定的值,成为字面量
常见的6种值
数字
int float complex(复数,以 j 结尾表示复数),bool
控制精度
m . n m控制宽度(小数点也计入),设置的宽度小于数字自身不生效。n控制小数点精度,会四舍五入
字符串String
三种定义方式:
- 单引号定义法: 'hello'(可以内含双引号)
- 双引号定义法: "hello"(可以内含单引号)
- 三引号定义法: """hello"""
三引号定义法支持换行操作,用变量接收他,他就是字符串。不适用变量接收他,就可以作为多行注释使用
都可以使用转义字符\ 来将引号解除效用,变成普通字符串
字符串拼接
- 在输出时使用 + 号
- 字符串格式化:
name = "hello"
message = "i will say%s" % name
# %表示占位,s表示将变量变成字符串放入占位的地方
num = 57
salary = 167
message = "hello%d,give you%s" % (num, salary)
# 多个拼接+把数字转换为字符串
快速拼接
f ” { } “
print(f"1 * 1的结果是:{1 * 1}")
列表List
Python中使用最频繁的数据类型,可有序记录一堆数据
元组Tuple
可有序记录一堆不可变的Python数据集合
集合Set
可无序记录一堆不重复的Python数据集合
字典Dictionary
可无序记录一堆Key-Value型的Python数据集合
=====================================
数据类型转换
- 从文件中读取的数字,默认是字符串
- input( )默认结果是字符串
常见的
int( x ) float( x ) str( x )
注释
单行注释
以#开头(一般规定注释和#之间加一个空格)
# 注释
多行注释
以一对三个的双引号引起来
"""
注释
”“”
运算符
+,-,*,/,%
新知识
// 取整除
** 指数
IO
输出print
输入input name = input( ),在括号中可以输入字符串作为提示信息,会在控制台上打印出来
输入默认时字符串类型
if
if 要判断的条件:
内容
if-else
if 条件:
内容
else:
内容
if-elif-else
if 条件:
内容
elif 条件:
内容
else 条件:
内容
while
while 条件:
内容
for
python的for循环无法构建无限循环(无法使被处理的数据集无限大)
待处理数据集严格来说称之为序列类型,其内容可以一个个一次取出:字符串,列表,元组,等
for 临时变量 in 待处理数据集:
内容
name = "itheima"
for x in name:
print(x)
//创建临时变量x,会一次把name中的内容一个个取出来赋值给x,这里是一个个字母取
range语句
语法1
range(num)可以获取一个从0开始,到num结束的数字序列(不包含num本身)
range(3)得到[0,1,2]
语法2
range(num1,num2)可以获得一个从num1开始到num2结束的数字序列(不包含num2本身)
语法3
range(num1,num2,step)可以获得一个从num1开始到num2结束的数字序列(不包含num2本身)数字之间的步长为step
函数
def 函数名(形参):
内容
return 返回值
可以没有返回值,没有返回值是,实际上就是返回了None(类型为NoneType),None相当于False。
如果变量result接收了None,则not result就是True
global
可以用global修饰变量,让他成为全局变量
数据容器
list列表
定义
# 1
[元素1,元素2....]
# 2
变量名称 = [元素1,元素2....]
# 3.定义空列表
变量名称 = []
变量名称 = list()
# 嵌套
my_list = [[1,2,3],[4,5,6]]
io
直接输出列表,是把列表所有元素全部输出,包含[],如果是字符串还带有单引号
列表下标(索引)
跟数组一样[下标],也是从0开始
但是有两种方式,对于含有三个元素的列表
理解一:正序 0 1 2
理解二:逆序,最后一位是-1 他们分别为-3 -2 -1
方法
查询 index
语法:列表.index(元素)
会返回这个元素的正向的下标
插入insert
语法:列表.insert(下标,元素)
在指定的下标位置插入指定的元素,这个下标就是插入后元素存在的下标
追加append
语法:列表.append(元素)
将指定元素追加到列表的尾部
删除 del/pop/remove
语句:del 列表[下标] 列表.pop(下标) 列表.remove(元素)
通过pop删除,会同时返回删除的元素,可以接收(能告诉你删掉的是什么元素)
remove可以通过元素内容来删除,会删除掉第一个匹配项
清空 clear
语法:列表.clear( )
清空整个列表
统计 count
语法:列表.count
统计某个元素在列表中的数量
求长度 len
len(列表)
tuple元组
列表是可以修改的,而元组一旦定义完成,就不可以修改
# 定义元组字面量
(元素,元素.....元素)
# 定义元组变量
变量名称 = (元素,元素.....)
# 定义空元组
变量名称 = () # 方式1
变量名称 = tuplr() # 方式2
如果元组只有一个数据,这个数据后面要添加逗号
元组也可以嵌套
可以使用index() , count() ,len()
如果在元组内嵌套一个list就可以修改
str字符串
每一个字符相当于都是一个元素
str是一个不可修改的数据容器
常规index,count,len
替换replace
语法:字符串.replace(字符串1,字符串2) 有返回值
将字符串内的全部内容替换,不是修改字符串本身,而是得到一个新的字符串
分割split
语法:字符串.split(分隔符字符串)
按照指定的分隔符字符串,将字符串划分为多个字符串并存入列表中
注意:字符串本身不变,而是得到了一个列表对象
规整strip
语法1:字符串.strip() 去除前后空格与回车符
语法2:字符串.strip(字符串) 去前后指定字符串
a.strip(12) 是1和2都会移除,是按照单个字符
序列
内容连续,有序,可使用下标索引的一类数据容器(列表,元组,字符串)
切片
可以从一个序列中取出来一个子序列
语法:序列[起始下标:结束下表:步长] 有返回值
左闭右开
从何处开始可以留空,这样默认从头开始,结束留空默认为结尾
可以将步长设为复值,会反着取,这时起始下标和结束下标要反过来。可以用来把字符串翻过来
集合
不允许重复,所以可以用来进行去重
集合是无序的,不支持下标索引访问,但是可以修改
语法{元素,元素,...... }
定义空集合: 变量名称 = set()
添加add
语法:集合.add(元素)
集合本身被修改
移除remove
随机取出pop
从集合中随机取出一个元素,同时集合本身被修改,元素被移除
清空clear
差集difference
语法:集合1.difference(集合2)
取出集合1和集合2的差集(集合1有而集合2没有)
得到新的集合,两个原集合不变
消除差集difference_update
语法:集合1.difference_update(集合2)
在集合1内,删除和集合2相同的元素
集合1被修改,集合2不变
集合合并union
集合1.union(集合2)
将两个集合合并为新集合
得到新集合,两个原集合不变
求长度len
注意:求的是集合元素数量,由于集合会去重,所以相同元素只计数1次
遍历
集合不支持下标索引,所以不能用while循环,可以用for
文件的读取与写入
打开文件open
对象名 = open( name, mode, encoding)
name:文件名的字符串,包含文件所在的具体路径
made:设置打开文件的格式:只读(r,默认),写入(w,原有的内容会删除),追加(a)等
encoding:编码格式(推荐使用UTF-8)
读操作
读取实际上是用指针去读取的,所以在read后面跟着一个read,就会延续上一次的指针位置
read
read(num) num表示要从文件中读取的数据的长度(字节),如果没有传入num,那么就表示读取的文件中的所有的数据
readLines
按照行的方式把整个文件中的内容一次性读取,并且返回的是一个列表
readLine
一次读取一行的内容
for
for line in open("abc.txt" , "r")
这里的line作为一个临时变量就储存了文件的一行数据
with open语句
在做完读取后
写操作
write,此时要输入的内容会存在缓冲区中
最后要使用flush刷新,缓冲区的内容才会真正写入文件中
关闭close
对象名.close( )
方法
type()
将一个值输入到括号里面会返回这个值得类型
研究:
# python中,不需要打分号,创建变量时不需要说明类型
str_q = type("hello")
print(str_q)# 输出结果显示为str
print(type(str_q))# 输出结果表示为type,因为str_q是str类型,str的类型可以说就是type
len()
求长度