day6:前两小节补充
1,练习题一:以66分割,大于部分一个键值对,小于部分一个键值对
li = [23,78,67,45,34,89,67,78,23,23]
lig = []
lil = []
dic = {}
for i in li:
if i == 66:
continue
elif i > 66:
lig.append(i)
else:
lil.append(i) dic.setdefault("k1",lig)
dic.setdefault("k2",lil)
print(dic.items()) 运行结果:
dict_items([('k1', [78, 67, 89, 67, 78]), ('k2', [23, 45, 34, 23, 23])])
2,练习题二
li = ["apple","pear","peach","watermelon"]
# 页面显示商品名称
for i in li:
print(li.index(i)+1,"\t\t",i) # 用户输入index显示商品名称 while 1:
num = input(">>>").strip() # 这句话注意要写在循环里面
if num.isdigit():
num = int(num)
if num in range(0,len(li)+1):
print(li[num-1])
else:
print("number out of range")
elif num.lower() =="q":
break
else:
print("please input an number")
运行结果:
1 apple
2 pear
3 peach
4 watermelon
>>>5
number out of range
>>>4
watermelon
>>>e
please input an number
>>>q
3,Python2 和Python3的几点小区别:
Python2除了range函数还有个xrange,但是Python3只有range;
Python2的input函数叫做raw_input,Python3叫做input;
Python2的print函数,加括号不叫括号都可以,Python3必须加,另外还有之前讲解的编码区别
4,赋值运算符= 和身份运算符is 前置比较的是值,后者比较的是地址,如果用pycharm 的话,很多都会做优化占用一个地址,如果用console就不是一个了
这个老师也没有总结出来规律知道就好了,数字和字符串,基本上数字-5到256,字符串s*20 还是同一个,s*21就不是了,遇到的时候,还是实际来跑一下,因为没有明显规律
a = "abcdefgh"
b = "abcde"
c = a
print (id(a),id(b),id(c))
print (a == b) #比较的是值
print (a is b) #比较的是地址
print (a == c)
print (a is c) # 由于小资源池的存在,Python为了节省空间自动用一块儿存储空间
a = 20000
b = 20000
c = a
print (id(a),id(b),id(c))
print (a == b)
print (a is b)
print (a == c)
print (a is c) 运行结果:
4460901104 4459766536 4460901104
False
False
True
True
4459708336 4459708336 4459708336
True
True
True
True
li = [1,]
l2 = [1,]
print(li is l2)
print(li == l2) 运行结果:
False
True
5,各个编码之间的二进制文件是不能互相认识的,密码本不同,文件的储存传输不能是unicode,只能是(GBK,GBK2312,UTF-8,UTF-16,ASCII)等也就是bytes类型,他们之间的转化需要通过Unicode,str在内存中是Unicode存储的,不能直接用来存储和传输,必须先转化成bytes类型,pycharm帮我们完成了这个转化的过程,其他的文件需要我们自己手动转化
"""
bytes类型 对于英文:
str :表现形式:s = "lisa"
编码方式:01010100 Unicode
bytes:表现方式:s =b'lisa'
编码方式:s = 10010011 utf-8 gbk...... 对于中文:
str :表现形式:s = "我们"
编码方式:01011110 Unicode
bytes:表现方式:s =b'\xe6\x88\x91\xe4\xbb\xac'
编码方式:s = 10010011 11100101 11100001 utf-8 gbk...... """ s = 'lisa'
s1 = b'lisa' print(s,type(s))
print(s1,type(s1))
print("")
s = '我们'
# s1 = b'我们' #注意这个是错误的 报错:SyntaxError: bytes can only contain ASCII literal characters.
# encode 函数将str转化为bytes,还有decode函数
# 注意两种编码方式占用字节数,以及编码结果
s1 = s.encode("gbk")
print(s1,type(s1))
s1 = s.encode('utf-8')
print(s,type(s))
print(s1,type(s1 运行结果:
lisa <class 'str'>
b'lisa' <class 'bytes'> b'\xce\xd2\xc3\xc7' <class 'bytes'>
我们 <class 'str'>
b'\xe6\x88\x91\xe4\xbb\xac' <class 'bytes'>
day6:前两小节补充的更多相关文章
- table固定前两列和最后一列,其他滑动显示
网上搜的基本都是4个table做的,数据处理比较麻烦,写了个一个table的,此示例只固定了前两列和最后一列,和网上的不太一样. 网上搜的基本都是4个table做的,数据处理比较麻烦,写了个一个tab ...
- 纯javaScript实现元素平滑滚动,改进前两个版本,支持鼠标滚轮滚动和点击元素滚动,滚动更顺畅
windowScroll(id, number, distance, direction, obj) 参数介绍: 1.id:所要滚动的元素id; 2.number:滚动次数; 3.distance:每 ...
- 《Writing Idiomatic Python》前两部分的中文翻译
汇总了一下这本小书前两部分的内容: 翻译<Writing Idiomatic Python>(一):if语句.for循环 翻译<Writing Idiomatic Python> ...
- sqlserver -- 学习笔记(七)获取同组数据的前两条记录
不啰嗦,直接上图,大概实现效果如下: 有上面这样一份数据,将他们按照userAccount和submitTime进行分组,然后提前每组数据的前两条记录 提取后数据如下: 实现的SQL如下: selec ...
- WORD中如何让前两页不显示页码
WORD中如何让前两页不显示页码 上稿人:ojn 点击率: 15191 我们有时在用word编辑文档时,会遇上第一.二页无需显示页码,第三页才是正文的第一页时,该如何正确插入页码呢? 以wor ...
- jsoi2014前两轮回眸
今天从常州回来了,第二轮考得惨不忍睹 大概来总结一下前两轮: 第一轮是4个小时,3道题,一道网络流,一道环形DP,一道线段树 最后一道题ahoi的原题(传送bzoj1798),非常水的线段树,是个很好 ...
- Js 正则表达式 写了一个正整数或小数点或分数前两个正则表达式
写了一个正整数或小数点或分数前两个正则表达式 /^[0-9]+([.]{1}[0-9]{1,2})? $/ 版权声明:本文博客原创文章.博客,未经同意,不得转载.
- 前两篇转载别人的精彩文章,自己也总结一下python split的用法吧!
前言:前两篇转载别人的精彩文章,自己也总结一下吧! 最近又开始用起py,是为什么呢? 自己要做一个文本相似度匹配程序,大致思路就是两个文档,一个是试题,一个是材料,我将试题按每题分割出来,再将每题的内 ...
- JavaBean的属性变量名前两个字母大小写问题
Java属性命名规范! 一般情况下.Java的属性变量名都已小写字母开头,如:userName,showMessage等,但也存在着特殊情况,考虑到一些特定的有意思的英文缩略词如(USA,XML等), ...
随机推荐
- Java 8 – MinguoDate examples
1. LocalDate -> MinguoDate Review a full example to convert a LocalDate to MinguoDate TestMinguoD ...
- 1.揭开消息中间件RabbitMQ的神秘面纱
当你看到这篇博文的时候,相信你至少已经知道RabbitMQ 是一个非常优秀的消息中间件,它使用专门处理高并发的Erlang 语言编写而成的消息中间件产品. 当然如果你不知道也没关系,读完本篇你将Get ...
- 【Java】Java NIO
NIO 为什么要使用 NIO? NIO 的创建目的是为了让 Java 程序员可以实现高速 I/O 而无需编写自定义的本机代码.NIO 将最耗时的 I/O 操作(即填充和提取缓冲区)转移回操作系统,因而 ...
- javascript form提交 不执行onsubmit事件解决方案
转载自:https://www.cnblogs.com/lorgine/archive/2011/03/30/2000284.html 今天做项目过程中,需要用到javascript提交form到后台 ...
- android 监听动画对象后不能播放动画
采用监听 AnimationListener 发现不能播放动画了. 解决办法: 将动画的启动方式:animation.startnow去掉,改为如下即可 view.startAnimation(an ...
- oracle 11g 使用物化视图远程增量刷新数据
① 源数据库建立物化视图日志 drop MATERIALIZED VIEW LOG ON ORG_BASEINFO/ CREATE MATERIALIZED VIEW LOG ON ORG_BASEI ...
- windows 同时启动多个Tomcat 控制台日志(startup.bat)输出到指定文件中
1 .修改startup.bat第42行 call "%EXECUTABLE%" start %CMD_LINE_ARGS% 为 call "%EXECUTABLE%&q ...
- Spark学习笔记——在远程机器中运行WordCount
1.通过realy机器登录relay-shell ssh XXX@XXX 2.登录了跳板机之后,连接可以用的机器 XXXX.bj 3.在本地的idea生成好程序的jar包(word-count_2.1 ...
- Javascript Base64加密解密代码
<script language="javascript" runat="server"> var keyStr = "ABCDEFGHI ...
- [React] 10 - Tutorial: router
Ref: REACT JS TUTORIAL #6 - React Router & Intro to Single Page Apps with React JS Ref: REACT JS ...