day1
#文件操作
fp = open('D:/text.txt','a+')
print('hello word',file = fp)
fp.close()
#变量有三个属性
name = '肖本杰'
print('内存',id(name))
print('类型',type(name))
print('值',name)
#变量字符串连接
name = '李四'
age = 378
print('我叫' +name+ '今年' +str(age)+ '岁')
#提示输入(默认变量为字符串类型)
input()返回值为str类型
a = int(input('请输入第一个加数'))
b = int(input('请输入第二个加数'))
print(a+b)
#整除运算
print(11//2) #//整除运算符 输出5
#次方运算
print(2**3) #表示2三次方
#链式赋值
a=b=c=20
#解包赋值
a,b,c=20,30,40
#交换两变量值
a,b=20,30
a,b = b,a
print(a,b) //输出30,20
#比较运算符(标识,类型,值)
>,<,>=,<=,!=,==是对vaue比较
is, is not 是对id比较
返回结果是布尔类型
a,b=20,30
print('a>b吗',a>b) //输出false
#逻辑运算符
a,b=1,2
s='hello word'
print(a==1 and b==2)
print(a==1 or b==3)
print(not a) //false
print('w' in s) //true
print('w' not in s) //false
#位运算
& | << >>
#分支结构
money=int(input('输入一个整数'))
if money<100:
print('金额小于100')
if money%2!=0:
print('金额为奇数')
else:
print('金额为偶数')
elif money>100 and money<200:
print('金额大于100小于200')
else:
print('金额大于200')
#条件表达式
'''
语法:
x if 判断条件 else y
运算规则:判断条件为true 返回值为x,判断条件为false 返回值为y
'''
num_a = int(input('输入a的值'))
num_b = int(input('输入b的值'))
print(str(num_a)+'大于'+str(num_b) if num_a>num_b else str(num_a)+'小于或者等于'+str(num_b))
#pass语句
什么都不做,只是一个占位符,用到需要写语句的地方
answer = input('您是会员吗?')
if answer == 'y':
pass
else:
pass
#range()
r=range(10) #[0, 1, 2, 3, 4, 5, 6, 7, 8, 9],默认从0开始,默认相差1成为步长
print(r) #输出 range(0,10) 返回值是一个迭代器
print(list(r)) #用于查看range对象中的整数序列 输出[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
r=range(1,10) #[1, 2, 3, 4, 5, 6, 7, 8, 9],从1开始,10结束,默认步长为1
r=range(1,10,2) #[1, 3, 5, 7, 9], 从1开始到10结束,步长为2
print(10 in r) #false 判断10是否在r序列中
print(10 not in r) #true
#循环
#while循环
while 条件:
循环体
#for循环
for item in 'Python':
print(item) //输出P y t h o n
for item in range(10):
print(item) //输出0,1,2,3,4,5,6,7,8,9
for _ in range(5): //循环重复5遍
print('人生苦短,我用Python')
#else搭配循环
当循环正常执行完(没有遇到break),会执行else语句
for:
else:
while:
else:
###################################列表###########################################
#创建列表对象
lst = ['hello','world',98] #第一种方式,使用[]
lst2 = list(['hello','world',98]) #第二种方式,使用内置函数list()
#切片
#语法 列表名[start:stop:step] 不包括stop
# 列表名[::-1] 列表逆序
# 遍历
for item in lst:
print(item,end=' ')
#=========================增
lst = [1,2,3,4,5,6,7]
#添加一个元素
lst.append(7)
#添加多个元素
lst.extend(lst2)
#在指定位置插入元素
lst.insert(1,90) #在1的位置上插入90
#=========================删
lst = [1,2,3,4,5,6,7]
#移除列表中一个元素
lst.remove(6)
#根据索引移除元素
lst.pop(1) #移除索引为1的元素,不指定参数删除最后一个
#利用切片删除元素
lst[1:3]=[] #使用空列表替换
#清除列表
lst.clear()
#清除列表对象
del lst
#=========================改
lst = [1,2,3,4,5,6,7]
lst[1:3]=[4,7,3,4,5,6] #利用切片批量修改
print(lst)
#=========================排序
lst = [1,4,2,7,5,3,8,9]
lst.sort() #默认升序
lst.sort(reverse=True) #降序
lst2 = sorted(lst,reverse=True) #原列表不变,产生新的列表对象
#列表生成式
lst = [i for i in range(1,9)]
print(lst) #输出[1, 2, 3, 4, 5, 6, 7, 8]
===================================字典============================================
#字典创建方式
#第一种,创建多个字典对象
scores={'张三':100,'李四':98,'王五':45}
#第二种,创建一个字典对象
student=dict(name='张三',age=98)
#字典的获取
print(scores['张三']) #第一种,键不存在报错
print(scores.get('张',0)) #第二种,若不存在返回0
#字典常见操作
print('张三' in scores) #判断键值是否存在
print('张三' not in scores)
del scores['张三'] #删除指定的key-value对
scores['陈六']=100 #新增
scores['张三']=78 #修改
scores.clear() #清空字典的元素
scores={'张三':100,'李四':98,'王五':45}
#获取所有的键
keys = scores.keys()
print(keys) #输出 dict_keys(['张三', '李四', '王五'])
#将键值转化为列表
print(list(keys)) #输出 ['张三', '李四', '王五']
#获取所有的值
values = scores.values()
print(values) #输出 dict_values([100, 98, 45])
#将值转化为列表
print(list(values)) #输出 [100, 98, 45]
#获取所有的key-value对
items = scores.items()
print(items) #输出 dict_items([('张三', 100), ('李四', 98), ('王五', 45)])
#字典遍历
for item in scores:
print(item,scores[item]) #item为key
#字典列表生成式
items=['Fruits','Books','Others']
prices=[96,78,85]
d={item:price for item,price in zip(items,prices)}
print(d)
=============================元祖=================================
#元祖的创建方式
'''第一种,使用()'''
t = ('python','world',98)
'''第二种创建方式'''
t1 = tuple(('Python','world',98))
#空列表创建
lst = []
lst1 = list()
#空字典创建
d={}
d1=dict()
#空元祖创建
t=()
t=tuple()
=========================================集合========================================
#集合创建
'''第一种创建方法'''
s = {2,3,4,5,6,7,8} #集合元素不允许重复
'''第二种创建方法'''
s1 = set(range(6))
s2 = set([1,2,2,3,3,4,4,5]) #列表转集合
s3 = set((1,1,2,2,5,5,6,7)) #元祖转集合
s4 = set('python') #字符串转集合
s5 = set() #创建空集合,只能使用此种方式与字典区别开
#集合相关操作
s = {10,20,30,40,50,60}
print(10 in s ) #判断
s.add(100) #添加一个元素
s.update({200,400,300}) #集合中添加多个元素、
s.remove(50) #删除,无报异常
s.discard(1000) #删除,无不报异常
s.pop() #随机删除一个元素
s.clear() #清空集合元素
'''集合关系'''
s1 = {10,20,30,40,50,60}
s2 = {10,20,30,40}
s3 = {10,20,90}
print(s2.issubset(s1)) #s2是否为s1的子集 True
print(s1.issuperset(s2)) #s1是否为s2的超集 True
print(s2.isdisjoint(s3)) #s2与s3是否没有交集 false
print(s1.intersection(s2)) #s1与s2的交集
print(s1 & s2) #s1与s2的交集
print(s1.union(s1)) #s1与s2的并集
print(s1 | s2) #s1与s2的并集
print(s1.difference(s2)) #s1与s2的差集
print(s1 - s2) #s1与s2的差集
print(s1.symmetric_difference(s2)) #s1与s2的对称差集
print(s1^s2 ) #s1与s2的对称差集
#集合生成式
s = {i for i in range(10)}
print(s)
==================================字符串=========================================
#查询操作
s = 'hello hello'
print(s.index('lo')) #查询第一次出现位置,未找到抛异常
print(s.find('lo')) #查询第一次出现位置,未找到返回-1
print(s.rindex('lo')) #反向查询第一次出现位置
print(s.rfind('lo')) #方向查询第一次出现位置
#大小写转化
print(s.upper()) #转大写
print(s.lower()) #转小写
print(s.swapcase()) #大小写相反转换
print(s.capitalize()) #第一个字符大写,其余小写
print(s.title()) #每个单词第一个字符转换为大写,每个单词剩余字符转化为小写
#对齐
s = 'hello,python'
print(s.center(20,'#')) #宽度20,居中对齐,#填充 输出:####hello,python####
print(s.ljust(20,'#')) #宽度20,左对齐,#填充 输出:hello,python########
print(s.rjust(20,'#')) #右对齐
#分割字符串
s = 'hello world Python'
lst = s.split() #默认按空格分割,返回一个列表
print(lst) #输出 ['hello', 'world', 'Python']
s = 'hello|world|python'
lst = s.split('|') #按照'|'分割
print(lst) #输出 ['hello', 'world', 'python']
s = 'hello|world|python'
lst = s.split(sep = '|',maxsplit=1) #按照'|'分割,分割一个字符
print(lst) #输出 ['hello', 'world|python']
print(s.rsplit()) #从右往左分割
#字符串判断
s.isidentifier() #判断是否合法标识符
s.isalpha() #判断是否全部由字母组成
s.isdecimal() #判断是否全部由十进制数字组成
s.isnumeric() #判断是否全部由数字组成
s.isalnum() #判断是否由字母和数字组成
#字符串替换
s = 'hello,python'
print(s.replace('python','java')) #python替换为java
s1 = 'hello,python,python,python'
print(s1.replace('python','java',2)) #前两个python替换为java
#字符串连接
lst=['hello','java','python']
print('|'.join(lst)) #用'|'将列表字符串连接 输出hello|java|python
print(' '.join(lst)) #用空格将列表字符串连接 输出hello java python
print('*'.join('Python')) #输出P*y*t*h*o*n
'''比较
> < == >= <= !=
'=='比较value值
is 比较id(内存地址)
'''
#字符串也可以切片
#格式化字符串
name='张三'
age=20
print('我叫%s,今年%d岁' % (name,age)) #第一种占位 %d %s %f 和C语言使用一样 输出 我叫张三,今年20岁
print('我叫{0},今年{1}岁,{0}是我的名字'.format(name,age)) #第二种占位使用format 输出 我叫张三,今年20岁,张三是我的名字
print('我叫{name},今年{age}岁') #第三种占位 输出 我叫{name},今年{age}岁
=================================函数============================================
'''===============程序演示函数格式========================='''
def calc(a,b):
return a+b
print(calc(10,20))
print(calc(b=100,a=200)) #指名道姓传参
'''===============程序演示返回值==========================='''
def fun(num):
add=[] #存奇数列表
even=[] #存偶数列表
for i in num:
if i%2==0:
even.append(i)
else:
add.append(i)
return add,even
lst = [23,45,64,24,67,45,42,76,57,59]
print(fun(lst)) #输出 ([23, 45, 67, 45, 57, 59], [64, 24, 42, 76])
#函数默认参数
def fun(a=10,b=20):
print(a,b)
fun(100) #输出 100 20
fun(20,30) #输出 20 30
print('hello',end='|') #修改了默认值,结束为|
'''=================================演示个数可变位置形参============================================='''
def fun(*args): #任意个数形参,结果为元祖
print(args)
print(args[0])
fun(10) #输出 (10) 10
fun(20,30) #输出 (20,30) 20
fun(30,405,50) #输出 (30,405,50) 30
def fun2(**args): #任意个数形参,结果为字典
print(args)
fun2(a=10) #输出 {'a': 10}
fun2(a=20,b=30,c=40) #输出{'a': 20, 'b': 30, 'c': 40}
def fun3(a,b,c):
print(a,b,c)
lst = [10,20,30]
fun3(*lst) #在函数调用时,将列表中的每个元素都转换为位置实参传入
dic = {'a':100,'b':300,'c':400}
fun3(**dic) #输出 100 300 400
'''局部变量使用global 定义则为全局变量'''
def fun():
global age
age = 100
fun()
print(age) #使用了global,age可作为全局变量使用