day7笔记
一、上节回顾
字典: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笔记的更多相关文章
- day7 笔记
二进制-----> ASCLL :只能存英文和拉丁字符.-----> gb2312 :只有6700来个中文字符,1980年-----> gbk1.0 :存了2w多字符 ,1995年- ...
- python自动化测试学习笔记-6urllib模块&request模块
python3的urllib 模块提供了获取页面的功能. urllib.request.urlopen(url, data=None, [timeout, ]*, cafile=None, capat ...
- python笔记 - day7
python笔记 - day7 参考: http://www.cnblogs.com/wupeiqi/articles/5501365.html 面向对象,初级篇: http://www.cnblog ...
- sqli-labs学习笔记 DAY7
DAY7 sqli-labs阶段总结 基本步骤 判断是否报错 判断闭合符号 判断注入类型 构建payload 手工注入或者编写脚本 基本注入类型 报错型注入 floor公式(结果多出一个1):and ...
- Android 笔记 Intent and Bundle day7
学习了Intent与Bundle的使用,进行应用中的交互 package com.example.intent; import android.app.Activity; import android ...
- python学习笔记-Day7
class Province: # 静态字段(类变量/属性) country = '中国' def __init__(self, name): # 普通字段(实例变量/属性) self.name = ...
- JS学习笔记Day7
一.ES5扩展方法 1.严格模式"use strict" 1)必须加在作用域的开头 2.数组扩展方法 1)indexOf(元素,从哪个下标开始查找) 作用:在数组中查找指定的元素第 ...
- HTML学习笔记Day7
一.position定位属性,检索对象的定位方式 1.语法:{position:static(无特殊定位)/absolute(绝对定位)/relative(相对定位)/fixed(固定定位):} 1) ...
- [Ting's笔记Day7]活用套件carrierwave gem:(2)利用Amazon S3架设图片服务器
来到第7篇了!培养写作习惯真是不容易:) 在我的上一篇文章活用套件carrierwave gem:(1)在Rails实现图片上传功能,上传图片功能已经完成啦!但是目前图片仅能上传在自己的本地文件夹内孤 ...
随机推荐
- 【java】为数组全部元素赋同样的值 以及 数组之间的复制
为数组全部元素赋同样的值 : boolean[] resArray=new boolean[100]; Arrays.fill(resArray, true); 数组之间的复制: System.arr ...
- Eclipse重新导入Tomcat启动出错选择不了文件夹
如果你已经把tomcat配置进了Eclipse,却因为某些原因delete了服务器,再想导入同版本的服务器就有可能会报Could not publish to the server.错误,并且添加服务 ...
- 各版本JDK1.5-1.8新特性
概述 一jdk15新特性 泛型 foreach 自动拆箱装箱 枚举 静态导入Static import 元数据Metadata 线程池 Java Generics 二jdk16新特性 Desktop类 ...
- Linux——Ubuntu下Sublime Text 2的安装
Sublime Text 2是一款共享软件,收费但可以永久免费试用的编辑器,价格是59个美刀,相信开发者一定不了解中国人,也不面对中国市场,.言归正传,ST2编辑功能强大,好评如潮,在Windows/ ...
- Vue 前端路由 vue-router
1.前端路由 后端路由:多页面,服务器端渲染好返回给浏览器. 前端路由:改变url不向服务器发送请求:前端可以监听url变化:前端可以解析url并执行相应操作. 前后端分离:后端只提供API来返回数据 ...
- A.0 B.1 C.2 D.3
17. 以下哪个不是广告平台? A.Admob B.Domob C.InMobi D.TalkingData 错误 应该选择:D.TalkingData 10. 哪个不是免费的工具? A.Xcode ...
- 在OpenERP报表中使用selection 类型字段
OpenERP 在报表的创作中始终有一个麻烦,那就是在报表中通过对象导航的方式获取的 selection 字段只能获取到该字段的 key 而不能获取对应的用户友好的描述文本. 举个具体的例子:销售单的 ...
- <转>C++位运算详解
原文转自:http://www.crazycpp.com/?p=82 前言 以前收藏过一篇讲C++位操作的文章,这次博客搬家,以前的数据都没有保留,整理谷歌网站管理后台的时候,发现不时的还有网友有在查 ...
- 通过内存映射文件来颠倒文本内容(暂没有处理Unicode和换行符)
// ReverseFileDemo.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include <windows.h> ...
- Mysql纯命令行添加用户及权限
原文链接:http://hi.baidu.com/ngy1991/item/45978bd05d82c7ea785daa42 创建用户: 命令: 1 CREATE USER 'username'@'h ...