python04基本数据类型-集合/格式化输出/函数/参数

一、集合

1.定义

由不同元素组成的集合,集合中是一组无序排列的可hash值,可以作为字典的key。

2.特性

集合本身是可变类型,但是集合中的元素必须是不可变类型,并且是不重复的,无序的。

3.作用

关系测试;去重

二、集合的常用方法

1.创建一个集合,有两种方式:

#s1 = {1,2,3,3,3,3,4}或者s = set(‘hello‘)

2.添加元素

# s1.add(5)
# s1.add(6,7,8,9) #只能接收一个值,传4个值会报错

3.清空集合

# s.clear()

4.拷贝

# s1 = s.copy()

5.删除

# s = {‘sb‘,1,2,3,4,5,6}
#随机删
# s.pop()

#指定删除
# s.remove(‘sb‘)
# s.remove(‘hellol‘) #删除不存在的元素会报错
# s.discard(‘sbbbb‘)#删除不存在的元素不会报错

6.更新

# s1={1,2}
# s2={1,2,3}
# s1.update(s2) #update可以更新多个值,把s1中没有的但是s2中有的元素加到s1中
# print(s1) # s1的元素变了
# s1.union(s2) # 求两者的并集,并不是更新
# print(s1) # s1中的元素并没有改变

#s1.update((3,4)) #可以传进去,列表、元组都可以传,只要是可迭代

三、关系测试

# op=[‘zyh‘,‘yyq‘,‘zjq‘]
# ec=[‘zjq‘,‘cyh‘]
# p_s=set(op) # for循环列表中的元素,生成一个集合
# l_s=set(ec)

1.求交集
# print(p_s,l_s)
# print(p_s.intersection(l_s))
# print(p_s&l_s)

2.求并集
# print(p_s.union(l_s))
# print(p_s|l_s)

3.求差集
# print(‘差集‘,p_s-l_s) #存在于p_s中但不存在于l_s中的元素,就是我有你没有的元素
# print(p_s.difference(l_s))
# print(‘差集‘,l_s-p_s) #存在于l_s中但不存在于p_s中的元素,就是我有你没有的元素
# print(l_s.difference(p_s))

4.交叉补集(先求并集,然后取出两者没有重复的元素)
# print(‘交叉补集‘,p_s.symmetric_difference(l_s))
# print(‘交叉补集‘,p_s^l_s)

s1 = {1,2,3,4}
s2 = {2,3,5}
print(s1^s2)  # {1, 4, 5}

5.两个集合有没有交集,返回True(有)或者False(没有)
# s1={1,2}
# s2={2,3,5}
# print(s1.isdisjoint(s2))

6.子集、父集
s1={1,2}
s2={1,2,3}
print(s1.issubset(s2))#s1 是s2 的子集
print(s2.issubset(s1))#False
print(s2.issuperset(s1))#s1 是s2 的父集

四、字符串格式化

1.字符串格式化两种方法:百分号和format,%s可以接受一切

2.百分号形式

格式:%[(name)][flags][width].[precision]typecode
(name)   可选,用于选择指定的key
flags   可选,可供选择的值有:
+       右对齐;正数前加正好,负数前加负号;
-       左对齐;正数前无符号,负数前加负号;
空格    右对齐;正数前加空格,负数前加负号;
0       右对齐;正数前无符号,负数前加负号;用0填充空白处
width   可选,占有宽度
.precision   可选,小数点后保留的位数
typecode   必选

简单示例:print("hello %s" %"yyq")

###打印字符串###
# msg=‘i am %s my hobby is %s‘ % (‘yyq‘,‘zyh‘)
# print(msg)
#i am yyq my hobby is zyh

# msg = "i am {0}, age {1}, really".format("seven",18)
# print(msg)

# msg=‘i am %s my hobby is %s‘ % (‘yyq‘,1)
# print(msg)
# i am seven, age 18, really

# msg=‘i am %s my hobby is %s‘ % (‘yyq‘,[1,2])
# print(msg)

# i am yyq my hobby is [1, 2]

# name=‘yyq‘
# age=19
# msg=‘i am %s my hobby is %s‘ % (name,age)
# print(msg)
# i am yyq my hobby is 19

###打印浮点数###
# tpl = "percent %.2f" % 99.976234444444444444 # 打印百分数,保留小数点后两位
# print(tpl)
# percent 99.98

###打印百分比###
# tpl = ‘percent %.2f%%‘ % 99.976234444444444444 #打印百分数,保留小数点后两位,%%打印百分号
# print(tpl)
# percent 99.98%

###对齐###
# msg=‘i am %(name)+60s my hobby is zyh‘ %{‘name‘:‘yyq‘}右对齐60个位置
# print(msg)

3.format格式

格式:[[fill]align][sign][#][0][width][,][.precision][type]
fill            [可选]空白处填充的字符
align        [可选]对齐方式(需配合width使用)

<,内容左对齐
       >,内容右对齐(默认)
      =,内容右对齐,将符号放置在填充字符的左侧,且只对数字类型有效。 即使:符号+填充物+数字
       ^,内容居中

sign         [可选]有无符号数字

+,正号加正,负号加负;
       -,正号不变,负号加负;
      空格,正号空格,负号加负;

#              [可选]对于二进制、八进制、十六进制,如果加上#,会显示 0b/0o/0x,否则不显示
,             [可选]为数字添加分隔符,如:1,000,000
width         [可选]格式化位所占宽度
.precision  [可选]小数位保留精度
type           [可选]格式化类型

###示例###

# tpl = "i am {name}, age {age}, really {name}".format(name="seven", age=18) 按照顺序取
# tpl = "i am {0}, age {1}, really".format("seven",18) # 不一一对应则报错,按元组下标方式取
# tpl = "i am {name}, age {age}, really {name}".format(**{"name": "seven", "age": 18})#这种是字典的形式,所以传值也要字典的格式,而且要到**

# tpl = "i am {:s}, age {:d}".format(*["seven", 18]) :s是字符串类型,:d是数字类型,*是表示要传入列表
# tpl = "i am {:s}, age {:d}".format("seven", 18)
#
# l=["seven", 18]
# tpl = "i am {:s}, age {:d}".format(*l)相当于format("seven", 18)
# print(tpl)

tpl = "numbers: {:b},{:o},{:d},{:x},{:X}, {:%},{}".format(15, 15, 15, 15, 15, 15.87623, 2)
print(tpl)
:b二进制
:o八进制
:x十六进制abcdef
:X十六进制ABCDE
:%显示成百分比,默认保留小数点后6位

五、函数

1.定义

python中的函数是逻辑结构化和过程化的一种编程方法。而“过程“”就是没有返回值的函数,没有return。但是python默认返回None,所以忘记“过程”这一说法

2.格式

# def test(x):
#     y=2*x+1
#     return y
def:定义函数的关键字
test:函数名
():内可定义形参
"":文档描述(非必要,但是强烈建议为你的函数添加描述信息)
y=2*x+1:泛指代码块或程序处理逻辑
return:定义返回值
调用运行:可以带参数也可以不带
函数名()

3.使用函数的好处:
代码重用
保持一致性,易维护
可扩展性

4.返回值

作用:获取函数的执行结。在实际的生产中,后面的代码可能会根据这个结果进行不同的操作。

# def test03():
#     msg = ‘test03‘
#     print(msg)
#     return 1,2,3,4,‘a‘,[‘alex‘],{‘name‘:‘alex‘},None # 当返回值是多个值的时候,函数return一个元组

# def test04():
#     msg = ‘test03‘
#     print(msg)
#     return {‘name‘:‘alex‘} # 返回字典

总结:
返回值个数=0:返回None
返回值个数=1:返回object
返回值个数>1:返回tuple

5.参数

形参变量只有在被调用时才分配内存单元,在调用结束时,即刻释放所分配的内存单元。因此,形参只在函数内部有效。函数调用结束返回主调用函数后则不能再使用该形参变量

实参可以是常量、变量、表达式、函数等,无论实参是何种类型的量,在进行函数调用时,它们都必须有确定的值,以便把这些值传送给形参。因此应预先用赋值,输入等办法使参数获得确定值

def calc(x,y): #x=2,y=3 #x,y是形参,只有在被调用(传值)时才分配内存单元
    res=x**y
    return res
a=calc(2,3) #2,3是实参
print(a)

###默认参数###

def stu_register(name,age,course,country="CN"):

常用于安装软件时,默认安装路径,默认安装一大推不需要的东西

###位置参数###

stu_register(name,age,course,country="USA") # name,age,course这种是位置参数

###关键字参数###

正常情况下,给函数传参数要按顺序,不想按顺序就可以用关键参数,只需指定参数名即可,但记住一个要求就是,关键参数必须放在位置参数之后。

stu_register(age=22,name=‘yyq‘,job="op") # 这种key=value形式的就是关键字参数

###参数组(**字典,*列表)###

若你的函数在定义时不确定用户想传入多少个参数,就可以使用非固定参数。

# *args(列表)

# def test(x,*args):
#    print(x)
#    print(args)
# test(1,2,3,4,5) # 返回1和(2,3,4,5)
# test(1,{‘name‘:‘alex‘})# 返回1和({‘name‘: ‘alex‘},)
# test(1,(‘x‘,‘y‘,‘z‘)) # 返回1和((‘x‘, ‘y‘, ‘z‘),)
# test(1,[‘x‘,‘y‘,‘z‘]) # 把列表当做一个整体传入args,返回1和([‘x‘, ‘y‘, ‘z‘],)
# test(1,*[‘x‘,‘y‘,‘z‘]) # 循环列表里面的元素然后传入args,把列表中的元素传入args,返回1和(‘x‘, ‘y‘, ‘z‘)
# test(1,*(‘x‘,‘y‘,‘z‘)) # 循环元组里面的元素然后传入args,把元组的元素传入args,返回1和(‘x‘, ‘y‘, ‘z‘)

总结:*args:把剩余的非key-value参数组成一个列表,然后传入函数,如果不给它传值也不会报错

# **kwargs(字典)

# def test(x,**kwargs):
#     print(x)
#     print(kwargs)#返回一个字典
# test(1,y=2,z=3)
# test(1,1,2,2,2,2,2,y=2,z=3)会报错,因为未知参数只有一个
# test(1,y=2,z=3,z=3)#会报错 :一个参数不能传两个值

# *args&**kwargs

# def test(x,*args,**kwargs):
#    print(x)
#    print(args,args[-1])
#    print(kwargs,kwargs.get(‘y‘))
# test(1,1,2,1,1,11,1,x=1,y=2,z=3) #报错
# test(1,1,2,1,1,11,1,y=2,z=3)
# test(1,*[1,2,3],**{‘y‘:1})

原文地址:https://www.cnblogs.com/liangjiongyao/p/8497181.html

时间: 2024-08-30 07:19:58

python04基本数据类型-集合/格式化输出/函数/参数的相关文章

python基础语法1 用户交互,基本数据类型,格式化输出,运算符

与用户交互: 输入: python2: input一定要声明你输入的类型 >>> input(">>:") >>:sean Traceback (most recent call last): File "<stdin>", line 1, in <module> File "<string>", line 1, in <module> NameError:

数据类型+与用户交互+格式化输出+基本运算符day03

一.数据类型 1.什么是数据类型 变量值才是我们存储的数据,所以数据类型就是指变量值的不同种类 2.为什么数据要分类型 变量值是用来保存现实世界的状态的,针对不同状态会有不同的类型数据进行表示 3.如何用,即数据类型的分类 a.整型int 作用:表示人的年龄,各种号码,等级. 定义: age=18    # age=int(18) b.浮点型float 作用:表示身高,体重,薪资等 定义: salary=3.1 # salary=float(3.1) c.字符串类型 1.表示描述性质的状态,如:

Win10下安装Python3及Python2、数据类型、格式化输出、运算符

Win10下安装Python3及Python2 下载的官网地址: https://www.python.org/downloads/windows/ 安装Python3: 安装完成之后,在开始处输入 cmd ,测试Python是否安装成功. 输入: python -V ----> pip -v ----> pip 安装Python2: 安装完成之后,打开之前打开的命令提示符页面,测试Python是否安装成功. 输入: python -V ----> pip -v Python3.x与Py

程序交互,数据类型,格式化输出

注释:单行注释用#,多行注释用三对双引号""""""   #注释 快捷键: ctrl + / 数据类型:1.数字  int(整型)  32位电脑:区间 -2**31~2**31-1           long(长整型)   Python 3.0 只有int      64位电脑 :区间 -2**63 ~2*63-1 2.字符串   加了引号的都算字符串(str)     单,双,多都可. msg = "My name is Alex

go语言之数据类型和格式化输出

1.数据类型 package main import ( "fmt" "reflect" ) func main() { //整形 var v1 int32 v1 = 123 v2 := 64 fmt.Println(v1,v2,reflect.TypeOf(v2)) //123 64 int //浮点型 var f1 float32 f1 = 12 f2 := 12.0 fmt.Println(f1,f2,reflect.TypeOf(f2)) //12 12 f

Python运算符、基本数据类型、格式化输出

基本运算符 计算机可以进行的运算有很多种,可不只加减乘除这么简单,运算按种类可分为算数运算.比较运算.逻辑运算.赋值运算.成员运算.身份运算.位运算.... 算数运算 以下假设变量:a=10,b=20 比较运算 以下假设变量:a=10,b=20 赋值运算 以下假设变量:a=10,b=20 http://kuanghy.github.io/2016/05/26/python-connect(Python连接符+=.+.-=) 逻辑运算 针对逻辑运算的进一步研究: 1.在没有()的情况下not 优先

基本数据类型与格式化输出

1.用户与程序交互 这里有一个版本问题,python2和python3 input接受的数据类型有区别. python3里input接受的类型输出都是字符串格式. python2里input接受什么类型,输出就是什么类型. python2里的raw_input和python3里的input相似. 2.代码注释 单行注释用#  ctrl + / 多行注释用"""  """ 三对双引号 注释原则: 不用全部注释,自己难理解的或者重要的部分. 注释可以

使用shell+awk完成Hive查询结果格式化输出

好久不写,一方面是工作原因,有些东西没发直接发,另外的也是习惯给丢了,内因所致.今天是个好日子,走起! btw,实际上这种格式化输出应该不只限于某一种需求,差不多是通用的. 需求: --基本的:当前Hive查询结果存在数据与表头无法对其的情况,不便于监控人员直接查看,或者导出到excel中,需要提供一个脚本,将查询结果处理下,便于后续的查看或者操作. --额外的:A.每次查询出来的结果字段数.字段长度不固定:B.每个数据文件中可能包含不只一套查询结果,即存在多个schema. 想法: 对于基本需

python输出格式化及函数format

总结了一些简单基本的输出格式化形式以及函数format函数基本使用形式. 字符串格式化代码: 格式 描述 %% 百分号标记 %c 字符及其ASCII码 %s 字符串 %d 有符号整数(十进制) %u 无符号整数(十进制) %o 无符号整数(八进制) %x 无符号整数(十六进制) %X 无符号整数(十六进制大写字符) %e 浮点数字(科学计数法) %E 浮点数字(科学计数法,用E代替e) %f 浮点数字(用小数点符号) %g 浮点数字(根据值的大小采用%e或%f) %G 浮点数字(类似于%g) %