Py集合,字符串的格式化,函数,便利
可变与不可变
不可变指的是:重新赋值时,内存中的id值会变得
其中有:字符串,数字,元组
name="sb"
v=id(name)
print(v)
name ="alex"
v1 =id(name)
print(v1)
可变指的是:重新赋值时,内存中的id值不会变得
其中有列表,字典
hobby=["code","play"]
v=id(hobby)
print(v)
hobby[0]="123"
m=id(hobby)
print(m)
数据类型:集合
属性:由不同的元素组合,集合中的元素必须是不可变型(字符串或数字或元组)
定义方法:
s={1,2,2,3,3,3,"ab"}
print(s)
输出后重复的会被去掉,因为集合是由不同元素组合的
可以通过函数创建集合set()
s=set("hello")
print(s)
1.在末尾添加元素add()
2.清空clear()
3.拷贝copy()
4. 随机删除一个元素pop()
5.指定删除某个元素remove(),如果指定删除的元素没有则会报错
s={"sb",1,12,2,3}
s.remove("sb")
print(s)
5.指定删除某个元素discard(),如果指定删除的元素没有不会报错
s={"sb",1,12,2,3}
s.discard("sbb")
print(s)
6.列表转换成集合set()
pyl=["11","22","##","11"]
lsl =[22,"ppp"]
ps1=set(pyl)
ps2=set(lsl)
print(ps1,ps2)
7.求两个集合的交集intersection()
pyl=["11","22","##","11"]
lsl =["22","ppp"]
ps1=set(pyl)
ps2=set(lsl)
print(ps1.intersection(ps2))
print(ps1&ps2)
8.求两个集合的并集union()
pyl=["11","22","##","11"]
lsl =["22","ppp"]
ps1=set(pyl)
ps2=set(lsl)
print(ps1.union(ps2))
print(ps1|ps2)
8.求两个集合的差集difference(),差集表示前面这个集合有的后面的那个集合没有的
pyl=["11","22","##","11"]
lsl =["22","ppp"]
ps1=set(pyl)
ps2=set(lsl)
print(ps1.union(ps2))
print(ps1|ps2)
9.交叉补集(把两个集合先和到一块,再去掉两者共有的部分)symmetric_difference()
第一个集合,symmetric_difference(第二个集合)
可用于:有两门课,找出其中只报了一门课的人
10.差集再更新,求完差集后赋值给前面的集合difference_update()
pyl=["lcg","scw","zjw","lcg"]
lnl=["lcg","scw","sb"]
p_s = set(pyl)
l_s = set(lnl)
p_s.difference_update(l_s)
print(p_s)
11.判断集合是否没有交集isdisjoint()
pyl=["lcg","scw","zjw","lcg"]
lnl=["lcg","scw","sb"]
p_s = set(pyl)
l_s = set(lnl)
p_s.difference_update(l_s)
print(p_s)
12.判断一个是不是另一个的子集issubset()
s1={1,2}
s2={1,2,3}
print(s1.issubset(s2))
print(s2.issubset(s1))
13.判断是不是父集issuperset()
14.求并集后赋值给前面的那一个集合update()
s1={1,2}
s1.update({15,4,3})
print(s1)
可以一次更新多个值
15.建立不可修改的集合frozenset()
s=frozenset("hrllo")
print(s)
字符串的格式化
字符串的拼接
百分号代表格式化,s代表字符串类型
%s代表此处填入字符串,如果只截取前两位%.2s
%d表示整型数字
%f表示浮点小数,如果只取两位小数%.2f(会自动四舍五入)
要打印出百分号需要输入两个百分号%%
print("i am %s my hobby is abcd" %"ewq")
print("i am"+" ewq "+"my hobby is abcd")
print("i am %s my hobby is %s" %("ewq","shit"))
左对齐(-)
print("i am %-60s my hobby is abcd" %"ewq")
右对齐(+)
print("i am %-60s my hobby is abcd" %"ewq")
在一段中间插入相同的字符串
print("user",'asd','ddd',sep=':')
使用format传送值
不按顺序传
tpl = "i am {2},age {1},{0}".format("seven",18,"alex")
print(tpl)
按照名字来传
tpl = "i am {name},age {age},{value}".format(name="seven",age=18,value="alex")
print(tpl)
用字典来传(字典前面加两颗星星)
tpl = "i am {name:s},age {age:d},{value}".format(**{"name":"seven","age":18,"value":"alex"})
print(tpl)
用列表来传(列表前面加一颗星)
tpl = "i am {:s},age {:d}".format(*["seven",18])
print(tpl)
用星号引用(便利)另一个指针的
l=['seven',18]
tpl = "i am {:s},age {:d}".format(*l)
print(tpl)
:b代表二进制 :o代表八进制 :d代表整形 :x代表十六进制(字母部分小写) :X代表十六进制
(字母部分大写) :%代表显示百分比(带六位的小数)。
tpl = "number : {:b},{:o},{:d},{:x},{:X},{:%}".format(15,15,15,15,15,15.87652,2)
print(tpl)
函数:
1.定义方法
def test(x):
"函数注释"
y=2*x+1
return y
feedback=test(3)
print(feedback)
2.test如果没有自变量就直接test()
3.如果函数重名,调用的将是最新最下面的那一个函数
函数与过程
函数是逻辑结构化的一种编程方法,包含返回值return的
过程是逻辑结构化的一种编程方法,没有返回值return的
如果return返回的是多个值,那它返回的那些值会拼接成一个元组
def calc(x,y):
res=x**y
return res
c = calc(a,b)
print(c)
这个程序里面的xy是形参,ab是实参。**代表求平方
形参是不占据内存空间的,当被赋值时才占据空间
def calc(x,y):
res=x**y
return res
a= input("请输入底数")
b= input("请输入次方")
c = calc(int(a),int(b))
print(c)
函数里面的参数的子项的顺序可以不按顺序,但是个数不能多 也不能少
def printabcd(x,y,z):
print(x)
print(y)
print(z)
printabcd(z=1,y=3,x=2)
默认参数
以下的type为默认参数
def handle(x,type='mysql'):
print(x)
print(type)
handle('hello')
当然默认参数也是可以被赋值的
def handle(x,type='mysql'):
print(x)
print(type)
handle('hello','abce')
参数组:字典前面加**,元组前面加*
def test(x,*args):
print(x)
print(args)
test(1,2,3,4,5,6)
def test1(x,**kargs):
print(x)
print(kargs)
test1(1,y=2,z=3)
*的具体意义是便利,比如*(1,2,3,4,5,6)就是用for逐个将123456分开传,而不是以一个整体传
Py集合,字符串的格式化,函数,便利的更多相关文章
- php对字符串的操作4之 字符串的格式化函数
strtolower($str ) strtoupper($str ) 大小写转换 strtotime('2018-1-1 0:0') 字符串转时间戳 date('Y-m-d H:i:s',time( ...
- pyextend库-unpack列表集合字符串解包函数
pyextend - python extend lib unpack (iterable, count, fill=None) 参数: iterable: 实现 __iter__的可迭代对象, 如 ...
- python字符串的格式化
# -*- coding:utf-8 -*- """ @Author:janson @Date:2018/8/1 @File:StrFormat.py "&qu ...
- #微码分享#C++变参字符串格式化函数format_string
在C和C++中,变参格式化函数虽然非类型安全,但却十分便利,因为得到广泛使用.对于常见的size_t类型要用“%zu”,ssize_t用”%zd“,int64_t用“% ”PRId64,uint64_ ...
- 关于jqGrig如何写自定义格式化函数将JSON数据的字符串转换为表格各个列的值
首先介绍一下jqGrid是一个jQuery的一个表格框架,现在有一个需求就是将数据库表的数据拿出来显示出来,分别有id,name,details三个字段,其中难点就是details字段,它的数据是这样 ...
- PHP中常用的字符串格式化函数总结
注意:在PHP中提供的字符串函数处理的字符串,大部分都不是在原字符串上修改,而是返回一个格式化后的新字符串. 一.取出空格和字符串填补函数 空格也是一个有效的字符,在字符串中也会占据一个位置.用户在表 ...
- [PostgreSQL]PostgreSQL数据类型格式化函数——字符串和数值间的转换
详情见官网:http://www.postgres.cn/docs/10/functions-formatting.html PostgreSQL中有以下格式化函数: 函数 返回类型 描述 例子 to ...
- sql常用格式化函数及字符串函数
一.常用格式化函数 1.日期转字符串 select to_char(current_timestamp, 'YYYY-MM-DD HH24:MI:SS') YYYY:年份 MM:月份号(01-12) ...
- php课程 6-22 字符串格式化函数有哪些(精问)
php课程 6-22 字符串格式化函数有哪些(精问) 一.总结 一句话总结: 1.猜测一下$_GET()怎么来的? 函数赋值给变量的操作:$_YZM=get(); 这样就可以很好的解释哪些全局变量 ...
随机推荐
- 第五章 Gateway--服务网关
欧克 ,我接着上篇第四章 Sentinel–服务容错,继续写下去 开始网关之旅 5.1网关简介 大家都都知道在微服务架构中,一个系统会被拆分为很多个微服务.那么作为客户端要如何去调用 这么多的微服务呢 ...
- 微服务之间如何共享DTO?
1. 概述 近些年来,微服务变得越来越流行.微服务基本特征是模块化.独立.易于扩展的.它们之间需要协同工作并交换数据.为了实现这一点,我们创建了名为 DTO 的共享数据传输对象.在本文中,我们将介绍在 ...
- Centos7.6上部署Supervisor来监控和操作各类服务
supervisor 是用Python开发的一个client/server服务,是Linux/Unix系统下的一个进程管理工具,不支持Windows系统.它可以很方便的监听.启动.停止.重启一个 ...
- C#中RDLC报表常用表达式(字符串和转换)
字符串函数 (1)使用串联运算符和 Visual Basic 常量可将多个字段组合在一起.以下表达式返回两个字段,它们分别位于同一文本框的不同行中:=Fields!FirstName.Value &a ...
- 搜索引擎优化(SEO)解决方案
搜索引擎优化(SEO)解决方案 在此之前,希望大家能重新审视搜索引擎,通俗来讲就是我们日常所用的百度.谷歌.搜狗.雅虎等.磨刀不误砍柴工,知己知彼,百战不殆! 一.搜索引擎是什么? 搜索引擎(Se ...
- hibernate连接数据库中文乱码
4.做完这两步还是不行,需要修改hibernate的配置文件hibernate.cfg.xml,在配置文件配置hibernate.connection.url属性.示例: <property n ...
- .netcore 微服务快速开发框架 Anno&Viper -分布式锁是个什么鬼
1.什么是锁 锁是为了解决多线程或者多进程资源竞争的问题. 同一进程的多个线程资源竞争可以用lock解决. lock 关键字可确保当一个线程位于代码的临界区时,另一个线程不会进入该临界区. 如果其他线 ...
- python之scrapy篇(一)
一.首先创建工程(cmd中进行) scrapy startproject xxx 二.编写Item文件 添加要字段 # -*- coding: utf-8 -*- # Define here the ...
- mapboxgl实现带箭头轨迹线
最近在使用mapboxgl实现轨迹展示时,想实现类似高德地图导航轨迹效果,然而并未在网上找到类似示例.经一番研究与尝试,最终解决,效果如下. 添加箭头核心代码如下,只需在配置layout中添加symb ...
- 第十五章节 BJROBOT cartographer 算法构建地图【ROS全开源阿克曼转向智能网联无人驾驶车】
建地图前说明:请确保你的小车已经校正好 IMU.角速度.线速度,虚拟机配置好 ROS 网络的前提进行,否则会造成构建地图无边界.虚拟机端无法正常收到小车主控端发布的话题数据等异常情况!! 1.把小车平 ...