一、上节回顾

字典:dic = {'name':'alex'}
1,增
dic['k'] = 'v'
有键值对,则覆盖
setdefault 有键值对,不添加
dic.setdefault('k1','v1') 可以
dic.setdefault('name','barry')

2,删
pop dic.pop('name') 有返回值,返回得是对应的值
dic.pop('k2',None)
dic.popitem()随机删除
del dic['name']
del dic
clear 清空

3,改
dic['name'] = 'v'
dic = {'name':'alex'}
dic2 = {'name':'barry','age':18}
dic.update(dic2)
print(dic) {'name':'barry','age':18}
print(dic2) {'name':'barry','age':18}
a,b = [1,2]
print(a,b) # 1,2

a = 1
b = 2
a,b=b,a

4,查
print(dic.keys())
print(dic.values())
print(dic.items()) # for k,v in dic.items():
#以上三个 都可以for循环
dic['name']
dic.get('name')

二、作业收藏

enumerate:枚举,对于一个可迭代的(iterable)/可遍历的对象(如列表、字符串),enumerate将其组成一个索引序列,利用它可以同时获得索引和值。

a = 'abcdefg'
for i in enumerate(a,1):
print(i)
# (1, 'a')
# (2, 'b')
# (3, 'c')
# (4, 'd')
# (5, 'e')
# (6, 'f')
# (7, 'g') 输出索引和元素值
a = {(1,2):2,3:4}
for i in enumerate(a):
print(i) # 如果是字典输出 数字和key值 # 默认结果是元组
有如下值li= [11,22,33,44,55,66,77,88,99,90],
将所有大于 66 的值保存至字典的第一个key中,将小于 66 的值保存至第二个key的值中。
即: {'k1': 大于66的所有值列表, 'k2': 小于66的所有值列表}
'''
# li= [11,22,33,44,55,66,77,88,99,90]
# dic = {'k1':[],'k2':[]}
# for i in li:
# if i > 66:
# dic['k1'].append(i)
# elif i < 66:
# dic['k2'].append(i)
# print(dic)
'''
4、输出商品列表,用户输入序号,显示用户选中的商品
商品 li = ["手机", "电脑", '鼠标垫', '游艇']
要求:1:页面显示 序号 + 商品名称,如:
1 手机
2 电脑

2: 用户输入选择的商品序号,然后打印商品名称
3:如果用户输入的商品序号有误,则提示输入有误,并重新输入。
4:用户输入Q或者q,退出程序。
'''
li = ["手机", "电脑", "鼠标垫", "游艇"]
# print(li[2])
# while True:
# for i in li:
# print('{}\t{}'.format(li.index(i)+1,i))
while True:
for index,i in enumerate(li,1):
print('{}\t{}'.format(index,i))
choice_goods = input('请输入商品序号(输入Q或者q退出程序):').strip() # 去空格
if choice_goods.isdigit(): # 全都是数字组成的字符串
choice_goods = int(choice_goods)
if (choice_goods > 0) and (choice_goods <= len(li)):
print(li[choice_goods-1])
else:print('请输入有效范围内的序号')
elif choice_goods.upper() == 'Q':break
else:print('请输入数字')

购物车部分模型

三、今日内容

  id() (is == 区别)

#ID   is  id()用于查看 一个变量或者一个值在内存中的地址
#int 中 -5---256 之间的数字不同变量内存地址是一样的 str中 不含空格或者特殊字符的变量内存地址一样 含空格或其他特殊字符的不一样
#{},[],(),range set 等 这些可变的他们的内存地址是不一样的
#is 是用来比较两个内存地址是否相等的
s =[]
s1 = []
print(s is s1) # False
s = -5
s1 = -5
print(s is s1) # True
s = -6
s1 = -6
print(s is s1) # F
s =256
s1 = 256
print(s is s1) # True
s = 257
s1 = 257
print(s is s1) # F
s = 'asdfghjk'
s1 = 'asdfghjk'
print(s is s1) # True
s = 'asdfghjk '
s1 = 'asdfghjk '
print(s is s1) # F
s = 'asdfgh+jk'
s1 = 'asdfgh+jk'
print(s is s1) # F

四、编码。

Bytes 对象是由单个字节作为基本元素(8位,取值范围 0-255)组成的序列,为不可变对象.{字符串有的功能bytes都有}

Bytes 对象只负责以二进制字节序列的形式记录所需记录的对象,至于该对象到底表示什么(比如到底是什么字符)则由相应的编码格式解码所决定。我们可以通过调用 bytes() 类(没错,它是类,不是函数)生成 bytes 实例,其值形式为 b'xxxxx',其中 'xxxxx' 为一至多个转义的十六进制字符串(单个 x 的形式为:\xHH,其中 \x 为小写的十六进制转义字符,HH 为二位十六进制数)组成的序列,每个十六进制数代表一个字节(八位二进制数,取值范围 0-255),对于同一个字符串如果采用不同的编码方式生成 bytes 对象,就会形成不同的值:

a = '张'
b = 'abcdefg'
n = bytes(b,'utf-8')
n1 = bytes(a,'utf-8')
print(n,n1) # b'abcdefg' b'\xe5\xbc\xa0' >>\x为16进制转义符 xe 代表一个字节
n3 = a.encode('gbk')
n4 = b.encode('gbk')
print(n3,n4) # b'\xd5\xc5' b'abcdefg'

py3:

     举例: unicode A :00000000 00000000 00000000 00001001 四个字节
     中 :00000000 00001000 00000000 00000001 四个字节

  utf-8 A :00000001 一个字节
  欧洲@ : 00000010 00000001 两个字节
  亚洲 中 : 00001000 00000000 00000001 三个字节
  中国:00001000 00000000 00000001 00001001 00000000 00000001

  gbk A :00000000 00001001 一个字节
  中 :00000000 00100001 两个字节
  不同的编码之间是不能相互识别,会产生乱码。

  存储,传输的:utf-8,或者 gbk,或者是gb2312,或者是其他(绝对不是unicode)。

  ......

day7笔记的更多相关文章

  1. day7 笔记

    二进制-----> ASCLL :只能存英文和拉丁字符.-----> gb2312 :只有6700来个中文字符,1980年-----> gbk1.0 :存了2w多字符 ,1995年- ...

  2. python自动化测试学习笔记-6urllib模块&request模块

    python3的urllib 模块提供了获取页面的功能. urllib.request.urlopen(url, data=None, [timeout, ]*, cafile=None, capat ...

  3. python笔记 - day7

    python笔记 - day7 参考: http://www.cnblogs.com/wupeiqi/articles/5501365.html 面向对象,初级篇: http://www.cnblog ...

  4. sqli-labs学习笔记 DAY7

    DAY7 sqli-labs阶段总结 基本步骤 判断是否报错 判断闭合符号 判断注入类型 构建payload 手工注入或者编写脚本 基本注入类型 报错型注入 floor公式(结果多出一个1):and ...

  5. Android 笔记 Intent and Bundle day7

    学习了Intent与Bundle的使用,进行应用中的交互 package com.example.intent; import android.app.Activity; import android ...

  6. python学习笔记-Day7

    class Province: # 静态字段(类变量/属性) country = '中国' def __init__(self, name): # 普通字段(实例变量/属性) self.name = ...

  7. JS学习笔记Day7

    一.ES5扩展方法 1.严格模式"use strict" 1)必须加在作用域的开头 2.数组扩展方法 1)indexOf(元素,从哪个下标开始查找) 作用:在数组中查找指定的元素第 ...

  8. HTML学习笔记Day7

    一.position定位属性,检索对象的定位方式 1.语法:{position:static(无特殊定位)/absolute(绝对定位)/relative(相对定位)/fixed(固定定位):} 1) ...

  9. [Ting's笔记Day7]活用套件carrierwave gem:(2)利用Amazon S3架设图片服务器

    来到第7篇了!培养写作习惯真是不容易:) 在我的上一篇文章活用套件carrierwave gem:(1)在Rails实现图片上传功能,上传图片功能已经完成啦!但是目前图片仅能上传在自己的本地文件夹内孤 ...

随机推荐

  1. unity 的视锥剔除和遮挡剔除

    Regular frustum culling only renders objects within the camera’s view. This is automatic and always ...

  2. 一种让UITableView的数据从下往上增长的方式

    遇到问题 一般来说tableview的数据都是从上往下增长,如下图所示(先是aaa出现在表格列表的最顶部,然后bbb出现在aaa的下面,以此类推) 但是如果我们想反向这个过程该怎么做呢?如下图所示(先 ...

  3. BEGINNING SHAREPOINT&#174; 2013 DEVELOPMENT 第14章节--使用Office Services开发应用程序 新的机器翻译服务

    BEGINNING SHAREPOINT® 2013 DEVELOPMENT 第14章节--使用Office Services开发应用程序  新的机器翻译服务         机器翻译服务也是继Wor ...

  4. ASP.NET中session和ViewState区别

    session变量是保存在Sever的内存中的,用的太多肯定会拖累Sever的,而且20分钟后session变量就会过期,不适合保存长期变量. ViewState是将数据保存在页面隐藏的控件中,永远不 ...

  5. MySQL存储过程详解 mysql 存储过程(转)

    mysql存储过程详解 1.      存储过程简介   我们常用的操作数据库语言SQL语句在执行的时候需要要先编译,然后执行,而存储过程(Stored Procedure)是一组为了完成特定功能的S ...

  6. 使用eclipse转换普通项目为web项目

    1.在项目上,进入属性(properties) 2.左侧列表项目中选择“Project Facets”,在右侧选择“Dynamic Web Module”和"Java",(如果要修 ...

  7. 转:VLC搭建RTSP直播流,图文介绍

    将一个视频转成rtsp流,通过vlc播放器,搭建一个rtsp服务器,让rtsp客户端去访问这个视频的rtsp流 1 需要有vlc播放器,我的版本如下 2  媒体 -->  流 3  添加视频文件 ...

  8. atitit.跨语言实现备份mysql数据库 为sql文件特性 api 兼容性java c#.net php js

    atitit.跨语言实现备份mysql数据库 为sql文件特性 api 兼容性java c#.net php js 1. 两个方法:: bat vs mysqldump(推荐)  vs   lang  ...

  9. 机器学习经典算法具体解释及Python实现--线性回归(Linear Regression)算法

    (一)认识回归 回归是统计学中最有力的工具之中的一个. 机器学习监督学习算法分为分类算法和回归算法两种,事实上就是依据类别标签分布类型为离散型.连续性而定义的. 顾名思义.分类算法用于离散型分布预測, ...

  10. C 调用 lua 函数

    C 调用 lua 函数 需要考虑的问题: 1. 使用 lua_pcall 可以调用 lua 函数,首先把 lua 函数入栈,然后把参数入栈, lua_pcall(luaState, 参数个数, 返回值 ...