一鼓作气 博客--第四篇 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

)r4un9k%7Bv1ci2]el.png)


tbc%60ecazzmf.png)






>>> 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 ...
随机推荐
- 集合 LinkedList、ArrayList、Set、Treeset
LinkedList中特有的方法: 1:方法介绍 addFirst(E e) addLast(E e) getFirst() getLast() removeFirst() removeLast() ...
- sublime如何自动保存
sublime是前端开发者喜欢使用的工具,它有很多快捷方式可以让我们快速的编写代码:在开发过程中,每次修改代码之后都要按Ctrl+S保存.在这里向大家介绍一下如何设置让它自动保存. 一.打开subli ...
- PROC 文件系统调节参数介绍(netstat -us)
转自:http://www.cnblogs.com/super-king/p/3296333.html /proc/net/* snmp文件 Ip: ip项 Forwarding : 是 ...
- (UWP)通过编写算法实现在地图中的渐变路径
目前的一个App中需要实现这个需求,但是在UWP自带的Bing Map中,绘制的MapPolyline的StrokeColor的类型是Windows.UI.Color,也就是说一条MapPolylin ...
- Addthis
WordPress外贸主题模版可以非常方便地整合国外流行的分享收藏社会化网络功能,比如Addthis是国外一个网络书签按钮聚合网站,是稳步提升网站流量和搜索引擎排名的WEB2.0工具!通过AddThi ...
- 安装 pywin32-218.win32-py2.7.exe 报错python version 2.7 required,which was not found in the registry解决方案
随便在一个盘下 新建register.py的文件,内容如下: # # script to register Python 2.0 or later for use with win32all ...
- 解决关键SSL安全问题和漏洞
解决关键SSL安全问题和漏洞 SSL(安全套接字层)逐渐被大家所重视,但是最不能忽视的也是SSL得漏洞,随着SSL技术的发展,新的漏洞也就出现了,下面小编就为大家介绍简单七步教你如何解决关键SSL安全 ...
- ZoomEye 钟馗之眼 搜索工具 基于API
#!/usr/bin/env python # -*- coding: utf-8 -*- # Author: f0rsaken import getopt import requests impor ...
- 单独编译使用WebRTC的音频处理模块
块,每块个点,(12*64=768采样)即AEC-PC仅能处理48ms的单声道16kHz延迟的数据,而 - 加载编译好的NS模块动态库 接下来只需要按照 此文 的描述在 android 的JAVA代码 ...
- android Studio 百度KEY获得发布版 SHA1 的方法
看图说话 build-->Generate Signed APK... create new(看不懂单词意思的同胞可以参考这个网址http://www.cnblogs.com/why168888 ...