python之路(sed,函数,三元运算)

一、sed集合

1、set无序,不重复序列

2、创建

 se = {11,22,33,33,44}
list() #只要是一个类加上()自动执行 list __init__
list = [11,22] s1 = set(list)
print(s1) #创建集合
s1 = {11,22}
s2 = set('可循环的') #操作集合
s = set()
print(s)
s.add(123)#可追加不可重复
s.add(123)
s.clear()
print(s)

3、功能

 #取不同都元素
s1 = {11,22,33}
s2 = {22,33,44}
s1.difference(s2) #s1中存在s2中不存在的11
s2.difference(s1) #s2中存在s1中不存在的44
s3 = s1.symmetric_difference(s2)#取s1,s2不同的值11,44
print(s3)
s1.difference_update(s2)#把s1中存在s2中不存在的更新到s1
s1.symmetric_difference_update(s2)#取s1,s2不同的值11,44更新到s1
print(s1) #删除
s1 = {11,22,33}
s1.discard(11) #指定移除11,如果没有移除对象不报错也不移除
s1.remove(1111)#指定移除,如果额没有移除对象,则报错
ret = s1.pop()#随机移除,移除内个元素,就把内个元素赋值给ret
print(ret) #取并集
s1 = {'aa'}
list = [11,22,33,44]
s1.update(list) #加一个迭代的元素,更新到s1,s1的初始值不能为空
print(s1) s1 = {'aa'}
list = [11,22,33,44]
s1.update(list) #加一个迭代的元素,更新到s1,s1的初始值不能为空
print(s1)

二、函数

1、函数结构

 # def f1():
# asdad
# adfasad
# adsfasdf
# 1、def关键字,创建函数
# 2、函数名
# 3、()
# 4、函数体
#5、返回值

2、函数特性

 def f1():
print(123)
return ''
print(456)
ret = f1() #下函数中,一旦执行return,函数执行过程立即终止
#默认返回值None

3、各种参数

 #1、普通参数(将严格按照顺序讲师级参数赋值给形式参数)
#2、默认参数(必须防止在参数列表的最后)
#3、指定参数(将实际参数赋值给形式参数)
#4、* 默认将传入的参数全部放在一个元组里,f1(*li)
# ** 默认将传入的参数全部放在一个字典里,f1(**dic) def send(xxoo,content,xx): #普通参数一一对应
print('发送成功',xxoo,content,xx)
return True
while True:
em = input('输入邮箱')
result = send(em,'SB','ok')
if result == True:
print('成功')
else:
print('失败') def send(xxoo,content,xx='ok'): #默认参数,可以输入两个,则xx等于ok,输入三个则xx等于输入值
print('发送成功',xxoo,content,xx) #如果给某个参数设置为默认参数,那么这个参数必须放在最后
return True
send('name','zk') def send(xxoo,content): #指定参数
print(xxoo,content)
return True
send(content='',xxoo='abc') def f1(*args): #动态参数*
print(args)
f1(11,22,33,44) #参数放在一个元组中 li = [11,22,33,44]
f1(li) #把列表作为一个元素
f1(*li) #把列表里的每一个元组作为元组里的一个元素 def f1(**args): #动态参数**
print(args)
f1(name='alex') #指定参数放在一个字典中
dic={'k1':'v1','k2':'v2'}
f1(kk=dic)
f1(**dic) #把字典赋值给动态参数

3、格式化输出

 #格式化输出
#str format格式化输出
s1 = "i am {0}, age {1}".format("alex", 18)
print(s1)
s2 = "i am {0}, age {1}".format(*["alex", 18])
print(s2) s1 = "i am {name}, age {age}".format(name='alex', age=18) #前面写的name后面传入参数时必须也是name
dic={'name':'alex','age':18}
s2 = "i am {name}, age {age}".format(**dic)
print(s1,'\n',s2)

4、def执行顺序

 def f1(a1, a2):
return a1 + a2
def f1(a1, a2):
return a1 * a2
ret = f1(8, 8) #从上向下执行 ret=64,第一个f1不生效
print(ret)

5、传参数

 def f1(a1):
a1.append(999)
li = [11,22,33,44]
f1(li)
print(li) #li=11,22,33,44,999#强调传的是引用所以列表会发生改变

6、全局变量

 #全局变量,所有的作用域里都可读
#***对全局变量进行【重新赋值】,需要global***
NAME = 'zkk'
def f1():
age = 18
global NAME # 表示,name是全局变量
NAME = ""
print(age, NAME)
def f2():
age = 19
print(age, NAME)
f1()
f2()
print(NAME)

三、三元运算

 if 1 == 1:
name = 'alex'
else:
name = 'SB'
print(name) name = 'alex' if 1 == 1 else 'sb' #if后面是条件,条件成立执行if前面的,否则执行else后面的
print(name) def f1(a1):
return a1 + 100
ret = f1(10)
print(ret)
f2 = lambda a1: a1 + 100 #f2函数名,a1参数,函数体a1+100,只能一行
r2=f2(1)
print(r2)

四、文件操作

1、打开文件

 # f = open('db', 'r') # 只读
# f = open('db', 'w') # 只写,先清空原文件
# f = open('db', 'x') # 文件存在,报错;不存在,创建并只写
# f = open('db', 'a') # 追加 f = open('db','r',encoding='utf-8')
data = f.read()
print(data,type(data))
f.close() f = open('db','r+',encoding='utf-8')
#如果模式无b,则read按照字符读取
data = f.read(1)
print(f.tell()) #调整你当前的位置(字节)
f.seek(f.tell())#把当前的指针位置向后覆盖,以字节的方式找
f.write('')
f.close()

2、操作文件

 tell() 获取当前指针位置(字节)
seek(1) 指针跳转到指定位置(字节) f = open('db','a') #强刷刷新
f.write('')
f.flush()
input('assdafa') f = open('db','w')
f.readable()
print(f.readable()) #查看是否可读 f = open('db','r+',encoding='utf-8')
f.seek(3)
f.truncate()#截断,根据指针位置
f.close() for循环文件对象 f=open(xxx)
for line in f:
print(line)

3、关闭文件

 f.close()
with open('xb') as f:
pass with open('db','r',encoding='utf-8') as f,open('db2','w',encoding='utf-8') as f2:
times =0
for line in f1: #一边读取一边写
if times <= 10:
f2.write(line)
else:
break with open('db','r',encoding='utf-8') as f1,open('db2','w',encoding='utf-8') as f2:
for line in f1:
print(line,type(line))
new_str = line.replace('alex','st')
f2.write(new_str)#同时打开两个文件

五、json

 import json
inp_str ='[11,22,33,44]'
inp_list=json.loads(inp_str) #字符串转换成列表
print(inp_list) inp_str ='{"k1":123, "k2": "wupeiqi"} ' #内部必须是双引号
inp_dic = json.loads(inp_str) # 根据字符串书写格式,将字符串自动转换成 字典类型
print(inp_dic)

六、内置变量

 # utf-8 一个汉字:三个字节
# gbk 一个汉字:二个字节
# utf-8
# 一个字节8位,一个汉字三个字节 #字节转化成字符串
new_str = str(bytes("李杰", encoding="utf-8"), encoding="utf-8")
new_byt=bytes("李杰", encoding="utf-8")
new_str2 = str(b'\xe6\x9d\x8e\xe6\x9d\xb0',encoding='utf-8')
print(new_str2,new_byt) a=bytes('李杰',encoding='utf-8')
b=bytes('张',encoding='utf-8')
print(a,'\n',b)

python之路(sed,函数,三元运算)的更多相关文章

  1. Python全栈之路3--set集合--三元运算--深浅拷贝--初识函数

    一.上节课的重点回顾: 1.类名加括号其实就是执行类的__init__方法: 2.int a.创建方式 n1 = 123 #根据int类创建了一个对象 n2 = int(123) #根据int类创建一 ...

  2. python函数 | 三元运算

    三元运算符就是在赋值变量的时候,可以直接加判断,然后赋值 格式: [on_true] if [expression] else [on_false] 三元运算只适用于简单的if else判断,再多一层 ...

  3. 第三天 函数 三元运算 lambda表达式 内置函数 文件操作

    面向过程: 直接一行一行写代码,遇到重复的内容复制黏贴. 不利于代码阅读 代码没有复用 面向对象 将代码块定义为函数,以后直接调用函数 增强了复用性 函数的定义方法 def 函数名(传递参数): 函数 ...

  4. Python全栈day18(三元运算,列表解析,生成器表达式)

    一,什么是生成器 可以理解为一种数据类型,这种数据类型自动实现了迭代器协议(其他数据类型需要调用自己内置的__iter__方法),所以生成器是可迭代对象. 二,生成器分类在python中的表现形式 1 ...

  5. Py修行路 python基础 (五)三元运算 字符编码 元组 集合 三级菜单优化!

    三元运算 条件判断不能加冒号: a=3 b=5 c=a if a<b else b oct() 转成八进制的简写:16进制 标志:BH为后缀或是0x为前缀hex() 转成16进制 元组 跟列表是 ...

  6. python之路--day13---函数--三元表达式,递归,匿名函数,内置函数-----练习

    1.文件内容如下,标题为:姓名,性别,年纪,薪资 egon male 18 3000 alex male 38 30000 wupeiqi female 28 20000 yuanhao female ...

  7. python 之路之函数01

    一   函数 1  那么要想学习函数,我们首先应该知道函数是什么? 我们这里所说的函数与数学中的函数是不同的概念,在这里我们可以把函数看成我们写代码过程中需要用到的工具. 2  那么这个‘工具’有什么 ...

  8. Python之路 day3 函数定义 *args及**kwargs

    #!/usr/bin/env python # -*- coding:utf-8 -*- #Author:ersa import time # def logger(): # time_format ...

  9. 【python之路12】三元运算符(if)

    1.三元运算符条件语句 普通if条件是这样写的: n = 1 if n > 0: st = '大于0' else: st = '小于等于0' print(st) 三元运算符的写法: n = 1 ...

  10. 小白的Python之路 day3 函数

    1.函数基本语法及特性 背景提要 现在老板让你写一个监控程序,监控服务器的系统状况,当cpu\memory\disk等指标的使用量超过阀值时即发邮件报警,你掏空了所有的知识量,写出了以下代码 1 2 ...

随机推荐

  1. Dig HOWTO 中文手册--dig命令使用大全

    Dig HOWTO 中文手册--dig命令使用大全 DNS -- 本人翻译的dig howto手册. 译者序: 可以这样说,翻译本篇文档的过程就是我重新学习DNS的过程,dig命令可以帮助我们学习DN ...

  2. Linux快速计算MD5和Sha1命令

    Linux计算MD5和Sha1的命令 MD5 MD5即Message-Digest Algorithm 5(信息-摘要算法 5),用于确保信息传输完整一致.是计算机广泛使用的杂凑算法之一(又译摘要算法 ...

  3. OpenCV中Kinect的使用(3)

    接OpenCV中Kinect的使用(2),下面内容主要讲述使用OpenNI 控制Kinect 的马达,实现摄像头的上下摆动. 下面是透过OpenNI比较低阶的USB控制介面(XnUSB.h),来做到马 ...

  4. Android APK反编译就这么简单 具体解释

    在学习Android开发的过程你.你往往会去借鉴别人的应用是怎么开发的,那些美丽的动画和精致的布局可能会让你爱不释手,作为一个开发人员.你可能会非常想知道这些效果界面是怎么去实现的,这时,你便能够对改 ...

  5. 数据库 : Mysql - 日常应用

    #登录MYSQL数据库 MYSQL -u root -p #显示所有数据库 SHOW databases; #显示当前数据库与应用程序间进行了多少条连接 SHOW processlist; #使用某一 ...

  6. Yii2 Queue队列

    github地址:https://github.com/yiisoft/yii2-queue 问题:https://github.com/yiisoft/yii2-queue/issues Jobs ...

  7. SAP ABAP 常见系统变量

    因为版权的问题,纯手工打,且行且珍惜. SY-PAGEO  当前页号 SY-LSIND 列表索引页 SY-DATUM 当前日期 SY-UZEIT 当前时间 SY-LISTI 上一个列表的索引 SY-L ...

  8. hdu1829(A Bug's Life)

    题目链接:传送门 题目大意:有n个昆虫,有m组关系,接下来m行表示两个昆虫性别不同,问是否有矛盾情况(同男同女) 题目思路:并查集的高级应用,开两倍数组大小,后n个数组表示和当前昆虫不同性别的集合 # ...

  9. EasyDSS流媒体服务器软件(支持RTMP/HLS/HTTP-FLV/视频点播/视频直播)-正式环境安装部署攻略

    EasyDSS流媒体服务器软件,提供一站式的转码.点播.直播.时移回放服务,极大地简化了开发和集成的工作. 其中,点播功能主要包含:上传.转码.分发.直播功能,主要包含:直播.录像, 直播支持RTMP ...

  10. Linux下带宽流量工具iftop实践

    在Linux/类Unix系统中可以使用top查看系统资源.进程.内存占用等信息.查看网络状态可以使用netstat.nmap等工具.若要查看实时的网络流量,监控TCP/IP连接等,则可以使用iftop ...