一、上节回顾

字典: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. JavaScript Array reverse 方法:颠倒数组中元素的顺序

    在JavaScript中,Array对象的reverse()方法将颠倒(反转)数组中元素的顺序.arr.reverse()在原数组上实现这一功能,即,reverse()会改变原数组. 例1:将数组元素 ...

  2. scrapy-splash抓取动态数据例子十

    一.介绍 本例子用scrapy-splash抓取活动行网站给定关键字抓取活动信息. 给定关键字:数字:融合:电视 抓取信息内如下: 1.资讯标题 2.资讯链接 3.资讯时间 4.资讯来源 二.网站信息 ...

  3. PHP关闭notice级别报错信息

    1.在php.ini文件中改动error_reporting改为:error_reporting=E_ALL & ~E_NOTICE2.如果你不能操作php.ini文件,你可以使用如下方法在你 ...

  4. linux上MySQL改动password的各种方法,yc整理

    MySQL改动password的各种方法 整理了下面四种在MySQL中改动rootpassword的方法,可能对大家有所帮助! 方法1: 用SET PASSWORD命令 mysql -uroot my ...

  5. git删除历史

    Git如何永久删除文件(包括历史记录)   有些时候不小心上传了一些敏感文件(例如密码), 或者不想上传的文件(没及时或忘了加到.gitignore里的), 而且上传的文件又特别大的时候, 这将导致别 ...

  6. android开发中,在java中怎样使用c提供过来char*

    这个char*假设是一般的字符串的话,作为string传回去就能够了.假设是含有'\0'的buffer,最好作为bytearray传出,由于能够制定copy的length.假设copy到string, ...

  7. 安装Drupal7.12+Postgresql9.1(Ubuntu Server 12.04)

    怀揣着为中小企业量身定做一整套开源软件解决方案的梦想开始了一个网站的搭建.http://osssme.org/ OS环境准备 这次是从OS开始安装的.最开始装Ubuntu12.04这里就不再赘述, 唯 ...

  8. iOS开发-使用代码退出应用程序,带动画。

    有时候我们需要使用代码中断程序,如果直接调用exit方法,会使得程序就像是崩溃那样,因此我们应该加上一个动画效果. 例如: AppDelegate *app = [UIApplication shar ...

  9. java filter、listener、servlet

    listener http://www.cnblogs.com/xdp-gacl/p/3969249.html http://blog.csdn.net/java_pengjin/article/de ...

  10. hiredis学习整理

    hiredis安装 http://blog.csdn.net/aizquan/article/details/20777453 http://blog.csdn.net/zhwei_87/articl ...