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

[经验分享] python_DAY02

[复制链接]

尚未签到

发表于 2018-8-10 12:32:40 | 显示全部楼层 |阅读模式
一  数字
1、整型int
  作用:年纪,等级,身份证号,qq号等整型数字相关
  定义:
  age = 10 #本质 age = int(10)
2、浮点型float
  作用:薪资、身高、体重、体质参数等浮点数相关
  salary = 11.2 #本质 salary =float(11.2)
二  字符串''
  作用:名字、性别、国籍、地址等描述信息
  定义:在单引号/双引号/三引号内,由一串字符组成
  例子:name = ‘Jose’
1、索引取值(正反取值)
  #!/usr/bin/env python
  #coding:utf-8
  name='Jose'
  print(name)  #打印出名称
  print(name[0]) #正向取第一个字母
  print(name[-2])#反向去倒数第二个字母
  #运行结果如下

2、切片(顾头不顾尾,步长)
  name='Jose'
  print(name[0:2])#切出前两位
  print(name[1:2])#切出第二位
  print(name[0:3:1]) #1表示步长
  print(name[0:3:2])#2表示步长
  #运行结果如下

  Ps:切片股头不顾尾。
3、长度len
  #len长度
  msg='my name is Jose'
  print(len(msg))
  #运行结果如下

  Ps:数字没有长度,字符串有,len统计字符串的个数
4、成员运算in和not in
  #in 和 not in
  msg = 'hello Jose'
  print('Jose' in msg)
  print('dxc' in msg)
  print('o' in msg)
  #运行结果如下

5、移除空白strip
  #移除空白strip
  password='alex123    '
  print(password.strip())
  #运行结果如下

  Ps:strip移除,默认是空格
6、切分split
  #切分split
  user_info='nginx:x:1012:1012::/home/nginx:/sbin/nologin'
  print(user_info.split(':')) #以冒号为分隔符进行切分
  print(user_info.split(':')[0])#以冒号为分隔符进行切分,并取出第一个值
  print(user_info.split(':',2))#以冒号为分隔符进行切分,2表示切两次
  #运行结果如下

  Ps:切分要与切片记住,切分是split定义分隔符
  7、循环
三 列表[]
  作用:多个装备,多个爱好,多门课程等
  定义:[ ]可以有多个任意类型的键值,逗号分隔
  例子:my_friends=['alex','engo','oldboy',4,5]
  #本质my_friends=list([….])
#优先掌握的操作:
  按索引存取值(正向存取+反向存取):即可存也可以取      
  切片(顾头不顾尾,步长)
  长度
  成员运算in和not in
  追加
  删除
  循环
四 元组()
  作用:存多个值,对比列表来说,元组不可变(是可以当做字典的key的),主要是用来读
  定义:与列表类型比,只不过[]换成()
  age=(11,22,33,44,55)本质age=tuple((11,22,33,44,55))
  #优先掌握的操作:
  按索引取值(正向取+反向取):只能取
  切片(顾头不顾尾,步长)
  长度
  成员运算in和not in
五 字典{}
  作用:存多个值,key-value存取,取值速度快
  定义:key必须是不可变类型,value可以是任意类型
  info={'name':'egon','age':18,'sex':'male'}#本质info=dict({....})
  或
  info=dict(name='egon',age=18,sex='male')
  或
  info=dict([['name','egon'],('age',18)])
  或
  {}.fromkeys(('name','age','sex'),None)
  #优先掌握的操作:
  按key存取值:可存可取
  长度len
  成员运算in和not in
  删除
  键keys(),值values(),键值对items()
  循环
六  集合
  作用:去重,关系运算
  定义集合: 可以包含多个元素,用逗号分割
  集合的元素遵循三个原则:
  1:每个元素必须是不可变类型(可hash,可作为字典的key)
  2:没有重复的元素
  3:无序
  注意集合的目的是将不同的值存放到一起,不同的集合间用来做关系运算,无需纠结于集合中单个值
  #优先掌握的操作:
  长度len
  成员运算in和not in
  |合集
  &交集
  -差集
  ^对称差集
  ==
  >,>= ,<,<= 父集,子集
  待练习…….
  后面的待总结
七  数据类型总结
  按存储空间的占用分(从低到高)
  数字
  字符串
  集合:无序,即无序存索引相关信息
  元组:有序,需要存索引相关信息,不可变
  列表:有序,需要存索引相关信息,可变,需要处理数据的增删改
  字典:无序,需要存key与value映射的相关信息,可变,需要处理数据的增删

八  运算符
  http://www.cnblogs.com/linhaifeng/articles/5935801.html#_label34

九  字符编码
  http://www.cnblogs.com/linhaifeng/articles/5950339.html
十  文件处理
  http://www.cnblogs.com/linhaifeng/articles/5984922.html
十一 课后练习
第一题
  # 写代码,有如下变量,请按照要求实现每个功能 (共6分,每小题各0.5分)
  name = " aleX"
  # 1)   移除 name 变量对应的值两边的空格,并输出处理结果
  答题思路:移除用strip,答案如下
  name =' aleX'
  print(name)
  print(name.strip())
  #运行结果如下

  # 2)   判断 name 变量对应的值是否以 "al" 开头,并输出结果
  答题思路:判断值的开头用startswith
name ='  aleX'print(name.startswith('al'))

  # 3)   判断 name 变量对应的值是否以 "X" 结尾,并输出结果
  答题思路:判断值的结尾用endswith
name ='  aleX'print(name.endswith('X'))#运行结果如下  # 4)   将 name 变量对应的值中的 “l” 替换为 “p”,并输出结果
  答题思路:替换用replace
  name ='  aleX'
  print(name.replace('l','p'))
  #运行结果如下:

  # 5)   将 name 变量对应的值根据 “l” 分割,并输出结果。
  答题思路:分割用split
name ='  aleX'print(name.split('l'))#运行结果如下

  # 6)   将 name 变量对应的值变大写,并输出结果
  答题思路:变大写用upper
name ='  aleX'print(name.upper())  #运行结果如下

  # 7)   将 name 变量对应的值变小写,并输出结果
答题思路:变小写用capitalizename ='  aleX'print(name.capitalize())  #运行结果如下

  # 8)   请输出 name 变量对应的值的第 2 个字符?
name ='  aleX'print(name[1])#运行结果如下,第二个字符是空格  # 9)   请输出 name 变量对应的值的前 3 个字符?
name ='  aleX'print(name[0:3])  #运行结果如下

  # 10)   请输出 name 变量对应的值的后 2 个字符?
name ='  aleX'print(name[-2:])  #运行结果如下

  # 11)   请输出 name 变量对应的值中 “e” 所在索引位置?
name ='  aleX'print(name.index('e'))  #运行结果如下

  # 12)   获取子序列,去掉最后一个字符。如: oldboy 则获取 oldbo.
name ='  aleX'a=name[:-1]print(a)  #运行结果如下

第二题
  1. 有列表data=['alex',49,[1900,3,18]],分别取出列表中的名字,年龄,出生的年,月,日赋值给不同的变量
  data=['alex',49,[1900,3,18]]
  name=data[0]
  age=data[1]
  bir=data[2]
  print(name)
  print(age)
  print(bir)
  #运行结果

  2. 用列表模拟队列 先进先出
  #append() 方法用于在列表末尾添加新的对像
  l1=[]
  l1.append('first')
  l1.append('second')
  l1.append('third')
  print(l1)
  print(l1.pop(0))
  print(l1.pop(0))
  print(l1.pop(0))
  执行结果如下

  3. 用列表模拟堆栈先进后出
  #insert() 函数用于将指定对象插入列表的指定位置
  l1=[]
  l1.insert(0,'first')
  l1.insert(0,'second')
  l1.insert(0,'third')
  print(l1)
  print(l1.pop(0))
  print(l1.pop(0))
  print(l1.pop(0))
  执行结果如下

  4. 有如下列表,请按照年龄排序(涉及到匿名函数)
  l=[
  {'name':'alex','age':84},
  {'name':'oldboy','age':73},
  {'name':'egon','age':18},
  ]
  答案:
  l.sort(key=lambda item:item['age'])
  print(l)
第三题
  #简单购物车,要求如下:
  实现打印商品详细信息,用户输入商品名和购买个数,则将商品名,价格,购买个数加入购物列表,如果输入为空或其他非法输入则要求用户重新输入
  #!/usr/bin/env python
  #coding:utf-8
  #定义一个字典
  msg_dic={
  'apple':10,
  'tesla':100000,
  'mac':3000,
  'lenovo':30000,
  'chicken':10,
  }
  shopping_list = [] #商品列表
  while True:      #循环使用
  for key in msg_dic:
  print(key,msg_dic[key])
  choice = input('请输入你想要的商品>>:').strip()
  if choicenot in msg_dic:  #判断,你输入的内容是否存在
  print('该商品不存在。。。')
  continue               #跳出本次循环
  count = input('请输入你想要的个数>>:').strip()
  if not count.isdigit():    #判断,你输入的是否是整数
  print('<<<<<<<<<请输入整数>>>>>>>>>')
  continue              #跳出本次循环
  shopping_list.append((choice,msg_dic[choice],int(count)))  #添加选购的商品及个数
  print(shopping_list)       #打印选购的商品及个数
  #运行结果如下

第四题
  1 有如下值集合[11,22,33,44,55,66,77,88,99,90...],将所有大于 66 的值保存至字典的第一个key中,将小于 66 的值保存至第二个key的值中
  即: {'k1': 大于66的所有值, 'k2': 小于66的所有值}
  #!/usr/bin/env python
  #coding:utf-8
  a={'k1':[],'k2':[]}
  b=[11,22,33,44,55,66,77,88]
  for i in b:
  if i< 66:
  a['k1'].append(i)
  else:
  a['k2'].append(i)
  print(a)

第五题
  统计s='hello alex alex say hello sb sb'中每个单词的个数
  结果如:{'hello': 2, 'alex': 2, 'say': 1, 'sb': 2}
方法一:
  #!/usr/bin/env python
  #coding:utf-8
  s='hello alex alex sayhello sb sb'
  l=s.split()
  dic={}
  for item in l:
  if itemin dic:
  dic[item]+=1
  else:
  dic[item]=1
  print(dic)
方法二:
  #!/usr/bin/env python
  #coding:utf-8
  s='hello alex alex sayhello sb sb'
  dic={}
  words=s.split()
  print(words)
  for word in words:#word='alex'
  dic[word]=s.count(word)
  print(dic)
十一 课后作业
  要求:写出一个三级菜单
  思路逻辑如下:
  F:\python19\Scripts\python.exeF:/untitled/19/day02/三级菜单.py
  北京
  上海
  山东
  请输入要选择的城市>>北京
  海淀
  昌平
  朝阳
  东城
  请输入要选择的城区>>昌平
  沙河
  天通苑
  回龙观
  请输入要选择的站口>>沙河
  老男孩
  北航
  最后一层,按b返回>>b
  沙河
  天通苑
  回龙观
  请输入要选择的站口>>b
  海淀
  昌平
  朝阳
  东城
  请输入要选择的城区>>
  北京
  上海
  山东
  请输入要选择的城市>>
  #!/usr/bin/env python
  #coding:utf-8
  menu = {
  '北京':{
  '海淀':{
  '五道口':{
  'soho':{},
  '网易':{},
  'google':{}
  },
  '中关村':{
  '爱奇艺':{},
  '汽车之家':{},
  'youku':{},
  },
  '上地':{
  '百度':{},
  },
  },
  '昌平':{
  '沙河':{
  '老男孩':{},
  '北航':{},
  },
  '天通苑':{},
  '回龙观':{},
  },
  '朝阳':{},
  '东城':{},
  },
  '上海':{
  '闵行':{
  "人民广场":{
  '炸鸡店':{}
  }
  },
  '闸北':{
  '火车战':{
  '携程':{}
  }
  },
  '浦东':{},
  },
  '山东':{},
  }
  while True:
  for i in menu:
  print(i)
  choice = input('请输入要选择的城市>>')
  if choicein menu:
  while True:
  for i2 in menu[choice]:
  print(i2)
  choice2 = input('请输入要选择的城区>>')
  if choice2in menu[choice]:
  while True:
  for i3 in menu[choice][choice2]:
  print(i3)
  choice3 = input('请输入要选择的站口>>')
  if choice3 in menu[choice][choice2]:
  while True:
  for i4 in menu[choice][choice2][choice3]:
  print(i4)
  choice4 = input('最后一层,按b返回>>')
  if choice4 == 'b':
  break
  if choice3 == 'b':
  break
  if  choice2== 'b':
  break
第七题 购物车
  待完善。。。。。。。。。
  思路:
  F:\python19\Scripts\python.exeF:/untitled/19/day02/购物车.py
  apple 10
  tesla 100000
  mac 3000
  lenovo 30000
  chicken 10
  请输入你想要的商品>>:apple
  请输入你想要的个数>>:10
  [('apple', 10, 10)]
  apple 10
  tesla 100000
  mac 3000
  lenovo 30000
  chicken 10
  #!/usr/bin/env python
  #coding:utf-8
  #定义一个字典
  msg_dic={
  'apple':10,
  'tesla':100000,
  'mac':3000,
  'lenovo':30000,
  'chicken':10,
  }
  shopping_list = [] #商品列表
  while True:      #循环使用
  for key in msg_dic:
  print(key,msg_dic[key])
  choice = input('请输入你想要的商品>>:').strip()
  if choicenot in msg_dic:  #判断,你输入的内容是否存在
  print('该商品不存在。。。')
  continue              #跳出本次循环
  count = input('请输入你想要的个数>>:').strip()
  if not count.isdigit():    #判断,你输入的是否是整数
  print('<<<<<<<<<请输入整数>>>>>>>>>')
  continue              #跳出本次循环
  shopping_list.append((choice,msg_dic[choice],int(count)))  #添加选购的商品及个数
  print(shopping_list)       #打印选购的商品及个数
  

运维网声明 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-549672-1-1.html 上篇帖子: python day 1 入门 下篇帖子: Python-语句结构
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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