Python 学习---------Day3
第七章 字符串
单双引号字符串是一样的
用转义序列代表特殊字节
字符串抑制转义
myfile=open(r'C:\new\text.dat','w')
三重引号编写多行字符串块
字符串更大的编码集
std(u'spam')
unicode('spam')
实际中的字符串
基本操作
索引和分片
拓展分片:第三个限制值
s[1:10:2]
s{::2]
s{::-1]
字符串转换工具
int('123'),str(42)
repr(42)
字符串代码转换
ord('s') 115
chr(115) s
二进制的转换
B='1101'
I=0
while B:
I=I*2+ord(B[0]-ord('0'))
B=B[1:]
I=13
'That is %d %s bird!' %(1,'dead')
字符串格式化
任何对象都可以转化为字符串,(打印时候使用),只需要使用%s这个代码来格式化表达式
基于字典的字符串格式化
"%(n)d %(x)s" %{"n":1,"x":spam}
reply="""
Greeting...
Hello %(name)s!
Your age is %(age)s
"""
value={"name":"bob","age":12}
print reply %value
字符串方法
s='xxxxSPAMxxxSPAMxxx'
where=s.find("SPAM")
s=s[:where]+'adas'+s[(where+4):]
s.replace("spam",'asda')
s.replace("soam","asda",1)
s='spam'
L=list(s)
L[2]='z'
s="".join(L) join方法可以把列表字符串连在一起
split()方法可以将一个字符串分割成一个子字符串的列表
line='aaa bbb ccc'
cols=line.split() cols=['aaa','bbb','ccc']
line="i'mSPAMSPAMlumberjack"
line.split("SPAM")
["i'm", 'lumberjack']
rstrip()
upper()
isalpha()
endswith()
第八章 列表与字典
列表:
任意对象的有序集合
通过偏移读取
可变长度,异构以及任意嵌套
属于可变序列的分类
对象引用数组
基本列表操作
len([1,2,3])
[1,2,3]+[4,5,6]
['NI']*4
3 in [1,2,3]
for x in [1,2,3]:
print x,
str([1,2])+"34" '[1,2]34'
[1,2]+list("34")
原处修改列表
L=['spam','Soan','SPAM"]
L[1]='eggs'
L=[0:2]=['eat','more']
L.append('please')
L.sort()
append()和sort()之类的属性,对象的修改有点类似副作用,所以没必要重新赋值
L[:0]=[x]
L=[1,2]
L.extend([3,4,5])
L.pop()
L.reverse()
L=[]
L.append(1)
L.append(2)
L.pop()
del L[0]
L[1:]=[]
L[0]=[] L=[[]]
字典
通过键而不是偏移量来读取
任意对象的无序集合
可变长,异构,任意嵌套
属于可变映射类型
对象引用表(哈希表)
字典的基本操作
d={'spam':2,'ham':1,'eggs':3}
d['spam']
len(d)
d.has_key('spam')
d.keys()
d['spam']=['grill','bake','fry']
del d['eggs']
d.values()
d.items()
d.get('spam')
d2={'a':4,'b':5}
d.uodate(d2)
d
d.pop('spam')
for key in D.keys()
for key in D
字典用于稀疏数据结构
matrix={}
matrix[(2,3,4)]=88
matrix[(1,2,3)]=89
if else
try :
except keyError:
matrix.get((2,3,4),0)
dict.fromkeys(['a','b'],0)
第九章 元组,文件以及其他
元组
任意对象的有序集合
通过偏移存取
属于不可变序列类型
固定长度,异构,任意嵌套
对象引用的数组
元组的特殊语法:逗号和圆括号
x=(40) x=40
x=(40,) x=(40)
如果你想对元组进行排序,先把它转换为列表,将它变为一个可变对象,然后再转换为元组
t=('cc','aa','bb','dd')
tmp=list(t)
tmp.sort()
t=tuple(tmp)
注意元组的不可变性只适合用于元组本身顶层而并非其内容,例如元组内部的列表使可以像往常那样修改
t=(1,2,[3,4],4)
t[2][0]='spam'
文件
实际应用中的文件
myfile=open('myfile','w')
myfile.write('hello text file\n')
myfile.close()
myfile=open('myfile')
myfile.readline()
myfile.readline()
pickle 的使用
struct 模块
引用和拷贝
copy方法可以复制字典,l[:]可以复制序列
比较,相等性和真值
== 操作符测试值的相等性
is 操作符测试对象的一致性
l1=[1,('a',3)]
l2=[1,('a',3)]
l1==l2 ,l1 is l2
(True,False)
s1='spam'
s2='spam'
s1==s2,s1 is s2
(True,True)
这里不一样的原因是在Python内部暂时存储并重复使用短字符串作为最佳化,事实上只有一个字符串'spam'供s1和s2使用
如果使用长点的字符串
s1='a long string'
s2='a long string'
s1==s2 s1 is s2
(True,false)
Python 学习---------Day3的更多相关文章
- python学习-day3
今天是第三天学习,加油! 第一部分 集合 一.集合 1.什么是集合以及特性? 特性:无序的,不重复的序列,可嵌套. 2.创建集合 方法一:创建空集合 s1 = set() print(type(s1) ...
- python学习day3
目录: 1.集合set 2.计数器 3.有序字典 4.默认字典 5.可命名元组 6.队列 7.深浅拷贝 8.函数 9.lambda表达式 10.内置函数 一.集合set set是一个无序且不重复的元素 ...
- python学习Day3 变量、格式化输出、注释、基本数据类型、运算符
今天复习内容(7项) 1.语言的分类 -- 机器语言:直接编写0,1指令,直接能被硬件执行 -- 汇编语言:编写助记符(与指令的对应关系),找到对应的指令直接交给硬件执行 -- 高级语言:编写人能识别 ...
- python学习 day3 (3月4日)---字符串
字符串: 下标(索引) 切片[起始:终止] 步长[起始:终止:1] 或者-1 从后往前 -1 -2 -3 15个专属方法: 1-6 : 格式:大小写 , 居中(6) s.capitalize() s ...
- Python学习day3作业
days3作业 作业需求 HAproxy配置文件操作 根据用户输入,输出对应的backend下的server信息 可添加backend 和sever信息 可修改backend 和sever信息 可删除 ...
- python学习day3 编程语言分类 变量 格式化输出
1.编程语言分类 机器语言:直接使用二进制指令直接编写程序,直接操作计算机硬件,必须考虑硬件细节 汇编语言:使用英文标签代替二进制指令去编写程序,直接操作计算机硬件,必须考虑硬件细节对,不过相比机器语 ...
- Python学习day3 数据类型Ⅰ(str,int,bool)
day3 数据类型 @上节内容补充 每周一个思维导图-xmind.exe in / not in #示例:(是否包含敏感字符)while True: text = input('请输入你要说的 ...
- Python学习笔记,day3
Python学习第三天 一.集合 集合是一个无序的,不重复的数据组合,它的主要作用如下: 去重,把一个列表变成集合,就自动去重了 关系测试,测试两组数据之前的交集.差集.并集等关系 常用操作: s = ...
- python s12 day3
python s12 day3 深浅拷贝 对于 数字 和 字符串 而言,赋值.浅拷贝和深拷贝无意义,因为其永远指向同一个内存地址. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 ...
- python学习博客地址集合。。。
python学习博客地址集合... 老师讲课博客目录 http://www.bootcdn.cn/bootstrap/ bootstrap cdn在线地址 http://www.cnblogs. ...
随机推荐
- 介绍开源的.net通信框架NetworkComms框架 源码分析(二十三 )TCPConnection
原文网址: http://www.cnblogs.com/csdev Networkcomms 是一款C# 语言编写的TCP/UDP通信框架 作者是英国人 以前是收费的 目前作者已经开源 许可是 ...
- Oracle nvchar2和varchar2区别分析
Oracle nvchar2和varchar2区别分析: [注意]VARCHAR2是Oracle提供的特定数据类型,Oracle可以保证VARCHAR2在任何版本中该数据类型都可以向上和向下兼容.VA ...
- java操作数据库
增加 public String addParent(Parent pp) { Connection conn=new ConntionUtil().openConnection(); Prepare ...
- Mediator(中介者)-对象行为型模式
1.意图 用一个中介对象来封装一系列的对象交互.中介者使各个对象不需要显示地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互. 2.动机 通过将集体行为封装在一个单独的中介者对象中,中介者 ...
- 比较两个NSDate类型的参数相差的时间差
+(NSInteger)getDaysFrom:(NSDate *)serverDate To:(NSDate *)endDate { NSCalendar *gregorian = [[NSCale ...
- iOS 判断设备型号
+ (NSString*)deviceString { // 需要#import "sys/utsname.h" struct utsname systemInfo; uname( ...
- nginx下开启pathinfo模式
第一种方式是通过重写url来实现pathinfo模式: location / { if (!-e $request_filename){ rewrite ^/(.*)$ /index.php?s=/$ ...
- KVC 与 KVO
一.Key-Value Coding (KVC)键值编码 KVC,即是指 NSKeyValueCoding,一个非正式的 Protocol,提供一种机制来间接访问对象的属性.KVO 就是基于 KVC ...
- 用c和c++的方式实现栈
#include <stdio.h> #include <stdlib.h> #include <assert.h> struct LinkNode { int d ...
- MongoDB的TruncationException异常解决方法
近期由于DB4O的一些无解的BUG,导致现行的项目查询效率底下,于是愤而迁移到了MongoDB. MongoDB虽然比DB4O的用户要多一些,但是文档依然极度匮乏,遇到问题不是那么容易就能搜到解决办法 ...