一鼓作气 博客--第四篇 note4
- 特性:
- 无顺序
- 去重
- 查询速度快,比列表快多了
- 比list占用内存多
- py2里默认编码是ascii
- 文件开头那个编码声明是告诉解释这个代码的程序 以什么编码格式 把这段代码读入到内存,因为到了内存里,这段代码其实是以bytes二进制格式存的,不过即使是2进制流,也可以按不同的编码格式转成2进制流。
- 如果在文件头声明了#_*_coding:utf-8*_,就可以写中文了, 不声明的话,python在处理这段代码时按ascii,显然会出错, 加了这个声明后,里面的代码就全是utf-8格式了
- 在有#_*_coding:utf-8*_的情况下,你在声明变量如果写成name=u"大保健",那这个字符就是unicode格式,不加这个u,那你声明的字符串就是utf-8格式
- utf-8 to gbk怎么转,utf8先decode成unicode,再encode成gbk
- py3里默认文件编码就是utf-8,所以可以直接写中文,也不需要文件头声明编码了,干的漂亮
- 你声明的变量默认是unicode编码,不是utf-8, 因为默认即是unicode了(不像在py2里,你想直接声明成unicode还得在变量前加个u), 此时你想转成gbk的话,直接your_str.encode("gbk")即可以
- 但py3里,你在your_str.encode("gbk")时,感觉好像还加了一个动作,就是就是encode的数据变成了bytes里,我操,这是怎么个情况,因为在py3里,str and bytes做了明确的区分,你可以理解为bytes就是2进制流,你会说,我看到的不是010101这样的2进制呀, 那是因为python为了让你能对数据进行操作而在内存级别又帮你做了一层封装,否则让你直接看到一堆2进制,你能看出哪个字符对应哪段2进制么?什么?自己换算,得了吧,你连超过2位数的数字加减运算都费劲,还还是省省心吧。
- 那你说,在py2里好像也有bytes呀,是的,不过py2里的bytes只是对str做了个别名,没有像py3一样给你显示的多出来一层封装,但其实其内部还是封装了的。 这么讲吧, 无论是2还是三, 从硬盘到内存,数据格式都是 010101二进制到-->b'\xe4\xbd\xa0\xe5\xa5\xbd' bytes类型-->按照指定编码转成你能看懂的文字。编码应用比较多的场景应该是爬虫了,互联网上很多网站用的编码格式很杂,虽然整体趋向都变成utf-8,但现在还是很杂,所以爬网页时就需要你进行各种编码的转换,不过生活正在变美好,期待一个不需要转码的世界。
msg='大保健'
data=[msg]
print(data)
************
在python2中显示\xe5\xa4\xbf\...
msg=u'大保健'
data=[msg]
print(data)
**********
def sayHi():
print('halou!')
sayHi() #加上括号才是真正的调用
def hb(name,age):
print('my name is %s,my age is %s'%(name,age))
hb('hhaibao',22)
def hb(name,age,nationality='CN'):
print('my name is %s,my age is %s,my county is %s'%(name,age,nationality))
hb('hhaibao',22)
ouput:my name is hhaibao,my age is 22,my county is CN
def hb(name,age,nationality='CN'):
print('my name is %s,my age is %s,my county is %s'%(name,age,nationality))
hb('hhaibao',22,'JP')
OUPUT:my name is hhaibao,my age is 22,my county is JP
def hb(name,nationality='CN',age):
print('my name is %s,my age is %s,my county is %s'%(name,age,nationality))
hb('hhaibao',22,'JP')
def hb(name,age,sex='F',nationality='CN'):
print('my name is %s,my age is %s,my county is %s'%(name,age,sex),nationality)
hb('hhaibao',22,nationality='po',sex='F')
def hb(name,age,sex='F',nationality='CN'):
print('my name is %s,my age is %s,my county is %s'%(name,age,sex),nationality)
hb('hhaibao',,nationality='po',sex='F')
def hb(name,age,sex='F',nationality='CN',*args):
print('my name is %s,my age is %s,my county is %s'%(name,age,sex),nationality,args)
hb('hhaibao',22,nationality='po',sex='F')
def hb(name,age,sex='F',nationality='CN',*args,**kwargs):
print('my name is %s,my age is %s,my county is %s'%(name,age,sex),nationality,args,kwargs)
hb('hhaibao',22,nationality='po',sex='F')
def hb(name,age,sex='F',nationality='CN',*args,**kwargs):
print('my name is %s,my age is %s,my county is %s'%(name,age,sex),nationality,args,kwargs)
hb(22,name='haibao',nationality='po',sex='F') # 22 和name='haibao'都传给了name、
ouput:
TypeError: hb() got multiple values for argument 'name'
def auth(username,password):
_username='haibao'
_password='123456'
if username==_username and password==_password:
print("welcome!")
user = input('user_name:').strip()
passwd = input('pass_word:').strip()
auth(user,passwd)
output:
user_name:haibao
pass_word:123456
welcome!
login_status=False #全局变量
def auth(username,password):
_username='haibao'
_password='123456'
if username==_username and password==_password:
print("welcome!")
login_status=True #局部变量
user = input('user_name:').strip()
passwd = input('pass_word:').strip()
auth(user,passwd)
name = 'haibao'
def change_name():
name = 'haibao'
print(name)
def change_name2():
name='rain'
print('name2',name)
change_name2()
change_name()
n = 0
def func(n):
print("9999",n+1)
func(n+1)
func(n)
n = 0
def calc(n):
print(n)
if n/2 > 0:
calc(n+1)
calc(10)
n = 0
def calc(n):
print(n)
if n//2 > 0:
calc(n//2)
calc(10)
data = range(0,1000,3)
# data = [3,6,7,19,1,30,2,45,1982,22,33,45,22,34,67,33,99,11,73]
def binary_search(datasets,find_num):
if len(datasets) > 0:
middle_pos = int(len(datasets)/2)
if datasets[middle_pos] == find_num:
#find it
print("find it,",datasets[middle_pos])
elif datasets[middle_pos] > find_num:
print("to left")
binary_search(datasets[0:middle_pos],find_num)
elif datasets[middle_pos] < find_num:
print("to right")
binary_search(datasets[middle_pos+1:],find_num)
else:
print("can't find the num",find_num)
binary_search(data,45) #chuanzhi
>>> a[0] 'h'
>>> a[2] 'i'
>>> a[1]='l'
Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: 'str' object does not support item assignment
57、bytesarray 可以修改
>>> a[0] 'h'
>>> c=bytearray(a)
>>> a[0]= 'lh'
def calc():
pass
print(callable(calc))
print(str(97)) ---97
print(chr(97)) ----a
print(str(97))
print(chr(97))
print(ord('a'))
f=open('tofile.py',encoding='utf-8')
code=compile(f.read(),'','exec')
print(code)
exec(code)
f=open('tofile.py',encoding='utf-8')
code=compile(f.read(),'','exec')
print(code)
exec(code)
print(dir(f))
print(hex(90))
print(max(3,6,8,9,1))
print(oct(90))
msg="hello,world!"
f=open('tofile','w',encoding="utf-8")
print(msg,"hello 2 world",sep="|",end="=",file=f)
69、reverse
data=[8,34,45,67,23,1,30]
data=reversed(data)
for i in data: print(i)
# for i in data2: print(i)
data='haibaohailinghaiwen'
data=reversed(data)
for i in data: print(i)
# for i in data2: print(i)
print(round(10.34)) 10
print(round(10.34,1)) 10.3
print(round(10.34,2)) 10.34
print(round(10.36,1)) 10.4
data=[3,3,3,3,34,4,4,4,46,6,6,6]
print(set(data))
a=range(200)
f=slice(20,80,3)
for i in a[f]:
print(i)
一鼓作气 博客--第四篇 note4的更多相关文章
- Scrum 冲刺博客第四篇
一.当天站立式会议照片一张 二.每个人的工作 (有work item 的ID),并将其记录在码云项目管理中 昨天已完成的工作 新建立了一个list页面用来显示题目,并且创建了列表用来进行题目的存放,将 ...
- 一鼓作气 博客--第八篇 note8
0.,222] list[33] except IndexError as e : print('index error ') except ValueError as e : print('valu ...
- 一鼓作气 博客--第七篇 note7
面向对象相关知识简介 类(Class): 用来描述具有相同的属性和方法的对象的集合.它定义了该集合中每个对象所共有的属性和方法.对象是类的实例. 类变量:类变量在整个实例化的对象中是公用的.类变量定义 ...
- 一鼓作气 博客--第六篇 note6
1.无论公司付给你多少,你的青春都是廉价的!! 2.通往财富自由之路 --得到APP 3.time 3.1 time.time() t = time.time() print(t) #--->1 ...
- 一鼓作气 博客--第五篇 note5
一.迭代器 二.装饰器 三.生成器 1.生成列表的方式有几种 2.把列表每个数都加1 2.1 data =[1,2,3] for i in map(lambda x:x+1,data):print(i ...
- 一鼓作气 博客--第三篇 note3
1 推荐读书消费者行为学 -商业的本质,APP得到,5分钟商学院 2定义字典 dic={'name':haibao,'age':18} 3字典的基本操作--查询 dic={'name':'haibao ...
- 基于 abp vNext 和 .NET Core 开发博客项目 - 博客接口实战篇(四)
系列文章 基于 abp vNext 和 .NET Core 开发博客项目 - 使用 abp cli 搭建项目 基于 abp vNext 和 .NET Core 开发博客项目 - 给项目瘦身,让它跑起来 ...
- [转]有哪些值得关注的技术博客(Java篇)
有哪些值得关注的技术博客(Java篇) 大部分程序员在自学的道路上不知道走了多少坑,这个视频那个网站搞得自己晕头转向.对我个人来说我平常在学习的过程中喜欢看一些教程式的博客.这些博客的特点: 1. ...
- Django搭建博客网站(四)
Django搭建博客网站(四) 最后一篇主要讲讲在后台文章编辑加入markdown,已经在文章详情页对markdown的解析. Django搭建博客网站(一) Django搭建博客网站(二) Djan ...
随机推荐
- 学号20145332 《信息安全系统设计基础》实验五 简单嵌入式WEB服务器实验
实验目的 掌握在 ARM 开发板实现一个简单 WEB 服务器的过程. 学习在 ARM 开发板上的 SOCKET 网络编程. 学习 Linux 下的 signal()函数的使用. 实验内容 学习使用 s ...
- react开发环境搭建
---恢复内容开始--- 要想用react,需要安装: 1)babel-sublime: 作用:编译es6,支持ES6, React.js, jsx代码高亮,并对所编译的代码进行高亮显示. 安装步骤: ...
- Centos7下安装mysql5.7.16
mysql的安装(root用户下) 从官网下载软件 linux下必须安装系统对应的版本,多少位 必须安装的是:server,client 但是我可不管要安装那个插件,我们直接使用bundle版本(就是 ...
- js实例--飞机大战
<!DOCTYPE html> <html> <head> <meta charset="utf-8"/> <title> ...
- H5(三)
Canvas(画布) 基本内容 简单来说,HTML5提供的新元素<canvas> Canvas在HTML页面提供画布的功能 在画布中绘制各种图形 C ...
- wkhtmltopdf 将网页转换为PDF和图片
wkhtmltopdf 是一个shell工具,它使用了WebKit渲染引擎和Qt,将网页html转换为pdf的强大工具,转换后的pdf也可以通过pdf工具进行复制.备注.修改 官网下载地址:http: ...
- 第二十二篇:在SOUI中使用代码向窗口中插入子窗口
使用SOUI开发客户端UI程序,通常也推荐使用XML代码来创建窗口,这样创建的窗口使用方便,当窗口大小改变时,内部的子窗口也更容易协同变化. 但是最近不断有网友咨询如何使用代码来创建SOUI子窗口,特 ...
- winform快速开发平台 -> 快速绑定ComboBox数据控件
通常我们在处理编辑窗体时.往往会遇到数据绑定.例如combobox控件绑定数据字典可能是我们经常用到的.然而在我的winform快速开发平台中我是如何处理这个频繁的操作呢? 首先,我们要绑定combo ...
- windows 查看软件是32位还是64位
我有一个配置挺好的电脑,win10 64位的系统,但是最近下载的一个软件用着巨慢,导致我严重想知道下载的软件是64位的还是32位的 百度谷歌了很久,大多数都说是两个方法: 1. 判断文件的安装路径,如 ...
- display:table-cell
布局神器display:table-cell Author:owenhong2015-06-17 随着时间的推进,ie6.ie7在中国浏览器市场的占有率越来越低的情况,我现在工作的团队,经过用户访问数 ...