设为首页 收藏本站
查看: 951|回复: 0

[经验分享] python_day2_数据格式

[复制链接]

尚未签到

发表于 2018-8-9 08:16:03 | 显示全部楼层 |阅读模式
  本章目录
  2.1 for 扩展用法
  2.2 格式化字符串
  2.3 数据类型
  2.3.1 整数
  2.3.2 符点型
  2.3.3 字符串
  2.3.4 列表,元组
  2.4.5 字典
  2.4.6 fromkeys
  2.4.7 set
  2.1 for 简单用法
  for 循环
    range()    循环的次数  >>> range(3)
  [0, 1, 2]
  >>> range(1,3)
  [1, 2]
  >>> range(1,100,2)  从1开始100结束,步长2
  for  exam in enumerate(数组) 自动增加一个编号
  for  exam,v in enumerate(数组,1)   从1开始
  print(exam,v)   去掉元组括号
  2.2 格式化字符串
  格式化输出占位符  %s, s = str 字符串
  %d, d = digit 整数
  %f, f = float 浮点数
  格式化输出
#/usr/bin/env python  # -*- codeing:utf-8 -*-
  name = input("Name:")
  age = input("age: ")
  job = input("Job: ")
  salary = input("salary: ")
  

  if salary.isdigit():
  salary = int(salary)
  # else:
  #     exit("enable int  ")
  

  xio =  '''
  ---------- info of %s ----------
  Name: %s
  Age:  %s
  Job:  %s
  Salary: %f
  ---------- end ----------
  ''' % (name,name, age, job, salary )
  

  print(xio)
  ### 输出
Name:xiong  age: 22
  Job: it
  salary: 3333
  

  ---------- info of xiong ----------
  Name: xiong
  Age:  22
  Job:  it
  Salary: 3333.000000
  ---------- end ----------
  2.3 数据类型
  整数: 判断 isdigit  长的像不像数字
  数字
  整数  int(integer)
  整型
  长整型
  in py3 已经不区分整型与长整型,统一叫做整型
  浮点数:
  用于处理实数,即带有小数的数字,占8个字节(64位) 其中52位表示底,11位表示指数,剩下一位表示符号。
  布尔 只有2种
  真: True
  假: False
  列表, 元组
  a = ['aa','bb','cc','dd','ee','ff']
  a = [ 0  , 1  , 2,    3,   4,   5 ]   # 这里为上面值的下标第一个值对应下标0
  in 包含某个内容是否存在于数据中,
  查询:  索引(下标), 都是从0开始
  print (a[0])   # 取第0个索引,意为第一个值
  打印结果为:  aa
  print(a[1:3])  # 从左往右,从第2个值一直到第4个值
  打印结果为:  ['bb', 'cc']   顾头不顾尾,最后一个不打印出来
  print(a[1::1]) # 从第1个值开始一直到最后一个,步长每次加1,从左往右
  打印结果为:  ['bb', 'cc', 'dd', 'ee', 'ff']
  print(a[::-1]) # 从第1个开始直到最后一个,但这里是从右开始减,每次减一直至最后
  打印结果为:  ['ff', 'ee', 'dd', 'cc', 'bb', 'aa']
  添加:
  a.append('gg') # 最右添加一个值
  打印结果为:  ['aa', 'bb', 'cc', 'dd', 'ee', 'ff', 'gg']
  a.insert(2,'hh') # 默认插到最后一个位置,这里插到第2个索引
  打印结果为:  ['aa', 'bb', 'hh', 'cc', 'dd', 'ee', 'ff', 'gg']
  修改:
  a[2]='hc'# 将原先插入的第2个值hh直接修改为hc
  打印结果为:  ['aa', 'bb', 'hc', 'dd', 'ee', 'ff']
  a[2:3]=['ha','da']# 将第2个值hh,第3个值dd修改为ha da
  打印结果为:  ['aa', 'bb', 'ha', 'da', 'dd', 'ee', 'ff']
  删除:
  a.remove('ha') # 删除值,这里只能删除内容,不能直接删除下标
  打印结果为:  ['aa', 'bb', 'da', 'dd', 'ee', 'ff']
  # a.remove(a[0]) # 删除指定值的下标,如不清楚内容的情况下,可以用这种方式
  # 打印结果为:  ['bb', 'da', 'dd', 'ee', 'ff']
  a.pop(1)   # 删除指定索引
  打印结果为:  ['aa', 'cc', 'dd', 'ee', 'ff']
  b=a.pop(1)     # 删除指定索引,并直接赋值给b,方便查看删除的某个值的内容,避免犯错
  打印结果为:  bb
  a.clear()  # 清空
  del a       # 直接将对象a给删除
  del a[1]# 删除指定索引1 ,简单粗暴,但危险
  统计出现的字符串: count
  b = ['11','22','33','11','22','11'].count('11')定义一个对象以及数组,并统计type(str(11))出现了多少次
  打印结果为: 3
  附加字符串: extend
  a=['1','2','3']
  b=['4','5','6']
  a.extend(b)# 定义两个值,将b内容附加扩展到a上
  打印结果为: ['1', '2', '3', '4', '5', '6']
  查找索引: index
  print(a.index('cc'))# 查询内容对应的下标索引值是多少
  打印结果为: 2
  将结果倒过来输 reverse
  b = ['11','22','33','11','22','11']
  print (b.reverse())  # 这种方式只能得出none, 想输出只能 b.reverse()  print(b)
  打印结果为: ['11', '22', '11', '33', '22', '11']
  b.sort(reverse=True) # 从大到小排序
  排序 sort     # 函数直接对内容进行排序,没有return返回值所以赋值给另一个值会直接为空
  b = ['11','22','33','11','22','11']
  --> b.sort()
  --> print(b)
  打印结果为:['11', '11', '11', '22', '22', '33']
  身份判断  >>> type(a) is list
  True
  元组:  只读列表
  xx = ()    # 空元组
  xx2 = (20,) # 一个元素,需要在元素后添加括号
  2.4.5 字典
  字典: 键值对数据类型
  字典必须是不可修改的类型,字典,元组 都不可以做为键
  字典两大特点: 无序,键唯一
  a=[1,2,3]
  a=list((1,2,3))
  dict()   跟list创建方法是一样的
  dic1=[]
  dic2=dict()  方法必须带括号   dic2=dict((("name","xiong"),("age",33),))
  键值添加
  dic1={"name":"xiong"}
  dic["age"]=222
  # 键存在,不改动,返回字典中相应的键的对应值
  dic1.setdefault("hobby","NNN")
  # 键不存在,在字典中增加新的键值对,并返回相应值
  字典查询
  dic1 = {"name":"xiong", "age":33,}
  print(dic["age"])
  # 将所有的键都取出做为一个列表, 类型为dict_keys
  dic1.keys()结果:dict_keys(['name', 'age', '1'])
  # 将字典中所有的值都出来
  dic1.values()结果: dict_values(['xiong', 33, 'test1'])
  # 将字典的键值对都取出来
  dic1.items()结果:dict_items([('name', 'xiong'), ('age', 33), ('1', 'test1')])
  xx = list((dic1.keys()))
  print(type(xx))<class 'list'>
  修改
  dic = {&quot;name&quot;:&quot;xiong&quot;, &quot;age&quot;:33,}
  dic[&quot;age&quot;]=34
  dic2 = {'1':'111','2':'222'}
  dic.update(dic2)# 跟列表中extend功能一样
  结果为 {&quot;name&quot;:&quot;xiong&quot;, &quot;age&quot;:33, '1':'111', '2':'222'}
  删除
  del dic1[&quot;name&quot;]结果: 删除name的键值对
  del dic1 结果: 删除整个字典
  dic1.clear()结果: 清空字典
  dic5.pop(&quot;age&quot;)结果: 删除字典中指定键值对,并返回该键值对的值
  # 随机删除一个键值对,并以元组方式返回值
  dic1.popitem()
  2.4.6  fromkeys
  其它操作以及涉及到的方法
  dic3=dict.fromkeys([&quot;h1&quot;,&quot;h2&quot;,&quot;h3&quot;],&quot;hhh&quot;)
  print(dic3)得出结果 {'h1': 'hhh', 'h2': 'hhh', 'h3': 'hhh'}
  # 将多个值赋值给多个键
  dic3=dict.fromkeys([&quot;h1&quot;,&quot;h2&quot;,&quot;h3&quot;],[&quot;hhh&quot;,&quot;ggg&quot;])
  print(dic3)结果:{'h1': ['hhh', 'ggg'], 'h2': ['hhh', 'ggg'], 'h3': ['hhh', 'ggg']}
  字典的嵌套
  data = [
  {&quot;1&quot;,22 },
  {&quot;2&quot;,33 },
  ]
  排序
  # 返回一个有序的包含字典所有key的列表
  print(sorted(dic3.items()))
  结果: [('h1', ['hhh', 'ggg']), ('h2', ['hhh', 'ggg']), ('h3', ['hhh', 'ggg'])]
  遍历
  dic1=dict(((&quot;name&quot;,&quot;xiong&quot;),(&quot;age&quot;,33),))
  for i in dic1:
  print(i,dic1)
  2.4.7 set
  set: 把不同的元素组成一起形成集合,是py基本的数据类型
  # 去重功能,当有两个相同的元素的时候会去掉重复的字符串
  # 必须是可hash的字符串,set是无序的,只能通过循环遍历或使用in、not in来访问或判断集合元素
  # set 不能做为键
  更新set集合_添加
  a = [&quot;a&quot;,&quot;b&quot;]
  c=set(a)
  c.add(&quot;c&quot;)
  print(c)结果: {'b', 'a', 'c'}
  update
  c.update(&quot;ab1&quot;)
  print(c)结果: {'b', '1', 'a', 'c'}
  # ab1 做为一个序列添加,有重复的不会添加序列, 没有重复的会直接添加到列表中
  c.update([123,321])  # 当为列表时,它会将序列当成一个整体加入到变量中,有重复的也不会添加
  print(c)# {321, 'b', 'a', 123}
  remove, pop, clear, del
  c.remove(&quot;a&quot;) 结果: {'b', '1', 'c'}
  c.pop()结果: 随机删除一个
  c.clear()# 结果: 清空列表 返回 set()
  del c # 直接删除变量,打印报错因为已经没了
  交集,并集
  a=set([1,2,3,4,5])
  b=set([1,2,3,4,6])
  交集: print( a & b)   # {1, 2, 3, 4}
  并集: print( a | b)   # {1, 2, 3, 4, 5, 6}
  差集, 对称差集
  差集: print(a.difference(b))   in a but bot b  # A有的B没有的打印出来
  第二种方法: print (a-b)
  # {5}   反过来也一样
  对称差集: print(a.symmetric_difference(b))     AB有的都不打印,只打印它共同没有的字符串或数值
  第二种方法: print ( a^b )
  # {5, 6}
  超集,子集
  print(a.issuperset(b))# A是不是完全包含B,否 返回 False 相当于A>B
  print(a.issubset(b))# A是不是B的子集   相当于A<B
  name1=set([&quot;xiong&quot;,&quot;wei&quot;,&quot;hua&quot;,&quot;fa&quot;])
  name2=set([&quot;xiong&quot;,&quot;yua&quot;,&quot;yuan&quot;,&quot;hua&quot;])
  # 子集        # 判断两个字段是否相等
  print(name1<name2)      # False
  # 父集        # 判断两个字段是否相等
  print(name1>name2)      # False
  # 并集        # 打印去重之后的
  print(name1 | name2)    # {'hua', 'xiong', 'yuan', 'wei', 'fa', 'yua'}
  # 交集        # 共同有的
  print( name1 & name2 )  # {'hua', 'xiong'}
  # 差集        # 用集合1减去集合2的相同字段,取出与集合2不相关的
  print( name1 - name2 )  # {'wei', 'fa'}
  # 对称差集     # 取出A跟B有的,打印两个集合没有的字符串
  print( name1 ^ name2 )  # {'yuan', 'yua', 'fa', 'wei'}
  # 手动输入一些字符串与自行定义的字符串进行对比
ins=[]  
b=set(['1','2','3','4','5'])
  
while True:
  
    a=input(&quot;测试: &quot;)
  
    if a == &quot;q&quot;:
  
        break
  
    ins.append(a)
  

  
ins=set(ins)
  

  
print(ins > b )

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-548887-1-1.html 上篇帖子: Centos下安装Python3.6-11946937 下篇帖子: python爬虫学习过程:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表