格式化输出
c 3.1415926
print( 输出pi保留小数点后两位 {:.2f} .format(c))
#输出结果 输出pi保留小数点后两位 3.14
#后续变量填充到{}中 {:.2f}表示将变量C填充到这个位置时取小数点后两位
一些小tips
在pycherm中
将光标停留在函数上 按ctrl B可以查看函数
ctrl Z 撤回操作
注意 每次运行新的file时单击右键选择运行当前函数 才可以执行当前函数
变量类型变量可以是任意数据类型 在程序中用一个变量名表示
变量名必须是英文 数字和下划线 且不能以数字开头
字符串类型用单引号或双引号都可
赋值: a ABC
在内存中创建一个‘ABC’的字符串
在内存中创建一个名为a的变量 并把它指向‘ABC’
password input( 请输入密码 ) print( 您刚刚输入的密码是 ,password)
input()的小括号中放入的是,提示信息用来在获取数据之前给用户一个简单的提示
input()在从键盘获取了数据以后会放到等号左边的变量中
input()函数接收的输入必须是表达式
输入的password认为是字符串类型的
强制类型转换将字符型转化为整型
a int( 123 ) b 100 a print(b) c int(input( 输入c: )) print( 输入了一个数字 %d %c)
逻辑运算符 : and or not 与或非
成员运算符
in : 如果在指定序列中找到值返回True否则返回False
not in : 与上面相反
判断语句和循环语句条件判断
非0和非空的值为True,0或者None为False
if True: print( True ) print( Answer ) else : print( False ) print( end ) #打印True Answer end
注意: 同一层次的代码必须是相同的缩进
注意: if ,else 后面有冒号
else 和 elif 可以一起使用
生成随机数
import random #引入随机库 a random.randint(0,3) #随机生成0~3区间内的数字
循环
一般循环和步进循环
for i in range(5): #i从0~5 print(i)#打印出0 1 2 3 4 for i in range(0,10,3): #i从0~10每次增长3到10结束 起始位置 结束位置 步进值 print(i) #打印出 0 3 6 9
还可以对字符串逐个遍历
name seven for x in name: print(x,end t )
另一种循环遍历,有点像利用下标遍历数组
a [ aa , bb , cc , dd ] for i in range(len(a)): print(i,a[i]) #输出i和i里面的元素 while循环 while i 5: print(i) i 1
注意 记得设置循环结束的条件 不可以写i
while 和 else连用
当while条件不满足时跳出来执行else语句的内容
count 0 while count 5: print (count, 小于5 ) count 1 else : print(count, 小于等于5 )
单引号 双引号 三引号
三引号表示段落 换行空格会一起打印出来
单引号和双引号之间没有太大区别 要输出单引号或双引号可以用转义字符
转义字符
字符串截取
str seven print(str) print(str[0:3]) #【起始位置 结束位置 步进值】 print(str[2])#也可以只访问一个内容str seven print(str[:5]) #从字符串开始的第一个字符输出到第五个 print(str[4:]) #从第四个字符输出到最后一个
字符串拼接
str seven print(str 你好 ) #采用加号拼接 print( - *30) #打印30个横线 print( hellonworld ) #转义字符 hello之后world换行输出 print(r hellonworld ) #字符串前面有r会使转义字符失效,显示原始字符
字符串替换
replace函数
注意 replace 不会改变原 string 的内容
temp_str this is a test print(temp_str.replace( is , IS )) print(temp_str) thIS IS a test。 this is a test。
字符串常用方法
bytes.decode(encoding utf-8 ,errors strict ) 设置解码格式为utf-8
encode(encoding utf-8 ,errors strict ) 在编码使用utf-8
isalnum() 如果字符串至少有一个字符并且所有字符都是字母或数字返回True 否则返回False
isapha() 如果字符串至少有一个字符并且所有字符都是字母返回True 否则返回False
isdigit() 如果字符串只包含数字返回True否则返回False
isnumeric() 如果字符串只包含数字返回True否则返回False
join(seq) 以指定字符串作为分隔符 将 seq 中所有的元素 的字符串表示 合并为一个新的字符串
len(string) 返回字符串长度
istrip() 截掉字符串左边的空格或指定字符
restrip() 删除字符串末尾的空格
split(str ,num string.count(str) num string.count(str)) 以str 为分隔符截取字符串 如果num有指定的值 则仅截取 num 1 个子字符串
namelist [] #定义一个空的列表 namelist [ 小张 , 小王 , 小李 ] test [1, 测试 ] #列表中可以存储混合类型 print(namelist[0]) #可以使用下标输出 #也可以循环打印列表中每一个元素 for name in namelist: print(name)
增
三种在列表中增加元素的方法
nametemp input( 请输入要增加的姓名 ) namelist.append(nametemp) #在末尾追加一个元素 a [1,2] b [3,4] a.append(b) #将列表b当作一个元素 加入到a列表中 a.extend(b) #将b里面的每一个元素,逐一的加入到a中 a [0,1,2] a.insert(1,3) #第一个变量表示插入的下标 第二个表示要插入元素
删
movieName [ 加勒比海盗 , 骇客帝国 , 指环王 , 速度与激情 ] del movieName[2] #在指定下标删除一个元素 movieName.pop() #弹出末尾最后一个元素 删除末尾元素 movieName.remove( 指环王 ) #直接删除指定类容的元素
注意 在列表中内容是可以重复的 用remove删除指定内容时 只删除找到的和指定内容相 同第一个元素
改
namelist [ 小张 , 小王 , 小李 ] namelist[1] 小红
查
namelist [ 小张 , 小王 , 小李 ] findName input( 请输入要查找的姓名 ) if findName in namelist: print( 在名单中找到了该名字 ) else: print( 未在名单中找到该名字 ) a [ a , b , c , a , b ] print(a.index( a ,1,4)) #可以查找指定下标范围的元素 并返回对应数据的下表 #范围区间左闭右开 #找不到会报错 print(a.count( a )) #统计某个元素出现几次
用for循环拿到列表下标和元素 使用枚举函数 同时拿到表中的下标和元素内容
myList [ a , b , c , d ] for i,x in enumerate(myList): #enumerate是枚举类型 print(i,x) #打印多个值可以用逗号隔开 #访问结果 3 d
排序和反转
a [1,4,2,3] a.reverse() #将列表所有元素翻转 a.sort() #按从低到高排序 升序排序 a.sort(reverse True) #按降序排序 print(a)
列表嵌套
schoolName [[],[],[]] #有3个元素的空列表 每个元素都是一个空列表 schoolName [[ 北京大学 , 清华大学 ],[ 南开大学 , 天津大学 , 天津师范大学 ],[ 山东大学 , 中国海洋大学 ]] print(schoolName[0][0])
注意 嵌套的列表中每个元素的个数可以不一样
元组 tuple元组写在小括号里 元素之间用逗号隔开
元组的元素不能修改 但可以包含可变对象
注意 定义只有一个元素的元组必须加逗号
tup1 () #创建一个空的元组 #tup2 (50) # class int tup2 (50,) # class tuple
增
tup1 (12,34,56) tup2 ( abc , xyz ) tup tup1 tup2 print(tup) #输出(12, 34, 56, abc , xyz )
实际上是增加了一个新的元组 或者链接
删
tup1 (12,34,56) del tup1 #删除了整个元组变量
查
tup1 ( abc , def ,2000,2020) print(tup1[0]) #可以使用下标访问 print(tup1[-1]) #访问2020 最后一个元素 print(tup1[1:5]) #访问结果 ( def , 2000, 2020) #左闭右开 进行切片
也可以通过for循环遍历元组
改
tup1 (12,34,56) #tup1[0] 100 #报错 不允许修改
其他的一些操作
操作名称操作方法举例元组成员关系in2 in list1得到重复元素的数量counttuple.count(1)获取元组长度len()获取元组最大值max()获取元组最小值min()其他类型对象转换成元组tuple() 字典(dic)字典是无序的对象集合 使用键-值 key-value 存储 具有极快的查找速度
键 key 必须使用不可变类型
同一个字典中 键 key 必须是唯一的
#字典的定义
info { name : 吴彦祖 , age :18}
#字典的访问
print(info[ name ])
print(info[ age ])
#访问了不存在的键
#print(info[ gender ]) #直接访问 会报错
print(info.get( gender )) #使用get方法 没有找到对应的健 默认返回 None
print(info.get( gender , m )) #没找到可以设定默认值 显示m
增
newID input( 请输入新的学号: ) info[ id ] newID
删
info { name : 吴彦祖 , age :18}
#[del]
del info[ name ] #三处指定键值
del info #将整个字典散出
#[clear] 清空
info.clear() #将字典内容清空
改
info { name : 吴彦祖 , age :18}
info[ age ] 20
查
info { id :1, name : 吴彦祖 , age :18}
#遍历所有的键
for key in info.keys():
print(key)
#遍历所有的值
for value in info.values():
print(value)
#遍历所有的键值对 for循环不仅可以访问一个值
for key,value in info.items():
print( key %s,value %s %(key,value))
其他操作
操作名称操作方法举例判断Key是否存在in“key” in dict1合并字典updatedect1.update(dect2)把两个列表转为字典dict zip方法dict(zip(list1,list2))将其他类型对象转换成字典dict()dict([(1,2),(2,3)])其他的获取长度 取得键最小值 获得键最大值 len(),min(),max()
集合 set集合和dict类似 也是一组key的集合 但不存储value。
在set中 没有重复的key
set是无序的 重复的元素在set中自动被过滤
常用操作
操作名称操作方法举例遍历集合通过for 循环for i in set1: print(i)更新集合update方法set1.update(set2)向集合添加新元素add方法set1.add(5)移除集合中的元素remove方法set1.remove(5)弹出元素pop方法val set.pop()清除元素clear方法set1.clear()删除集合deldel set1 是否有序是否可变类型列表[]有序可变类型元组()有序不可变类型字典{}无序key不可变 val可变集合{}无序可变类型 不重复把具有独立功能的代码块组织为一个小模块
定义函数定义函数格式如下
def 函数名 (参数1 参数2): return 要返回的值
返回多个值的函数
def divid(a,b): shang a/b yushu a%b return shang,yushu sh,yu divid(5,2) global a #声明全局变量标识符 使a不会被局部变量覆盖文件操作
在python中 使用open函数 可以打开一个已经存在的文件 或者创建一个新文件
open 文件名 访问模式
基本常用操作f open( test,txt , w ) #打开文件 w模式 写模式 文件不存在就新建 f.write( hello world! ) #将字符串写入文件 f.close() #关闭文件



