第四章 介绍Python对象类型
为什么使用内置类型
内置对象使程序更容易编写
内置对象是拓展的组件
内置对象往往比定制的数据结构更有效率
内置对象是语言标准的一部分
Python的核心数据类型
数字
字符串
列表
字典
元组
文件
其他类型(集合,类型,None,布尔型)
数字
import math
math.pi
math.sqrt(54)
import random
random.random()
random.choice([1,2,3,4])
字符串
序列操作
s='spam'
len(s)
s[0]
s[1]
s[len(s)-1]== s[-1]
s[-2]
s[1:3] #分片操作
s[:-1]
s[:] #就是s
s+'xyz' #字符串支持加号合并,将连个字符串合成一个新的字符串
s*8
字符串具有不可变性---在其创建后值不能改变,例如,你不能通过对其某一为之进
行赋值而改变字符串,但是你总是可以通过建立一个新的字符串以同一个变量名进行对其赋

类型特定的方法
s.find('pa') #函数返回传入子字符串的偏移量,没有找到的情况下返回-1
s.replace('pa','xyz') #搜索并进行替换
line='aaa,bbb,ccccc,dd'
line.split(',')
s='spam'
s.upper() #大写
s.isalpha() #判断是不是字母
line=line.restrip() #去除换行符
dir(S) 可以查找对象的所有属性
ord('a') 返回a的ascii码
Python允许字符串包括在单引号或者双引号中,它也能够在三引号中表示多行字符串的
形式
模式匹配
import re
match=re.match('Hellp[\t]*.(.*)world','Hello Python world')
match.group(1)

match=re.match('/(.*)/(.*)/(.*)','/usr/home/lqs')
match.groups()
列表 是一个任意类型的对象的位置相关的有序集合,它没有固定的大小,不想字符串,其
大小是可变
L=[123,'spam',1.23]
len(L)
L[0]
L[:-1]
L+[4,5,6] #创建了一个新的列表
L #不变
L.append('NI')
L.pop(2)
M=['bb','aa','cc']
M.sort()
M.reverse()
边界检查 Python不允许引用不存在的元素
嵌套
M=[[1,2,3],
[4,5,6],
[7,8,9]]
列表解析
col2=[row[1] for fow in M]
[row[1] for row im M if row[1]%2==0]
diag=[M[i][i] for i in [0,1,2]]
doubles=[c*2 for c in 'spam']
字典
D={'food':'spam','qian':4,'color':'pink'}
D['food']
D['qian']+=1 字典具有可变性
a={}
a['name']='bob'
a['age']=23
重访嵌套
rec={'name':{'first':'bob','last':'snuth'},
'job':['dev','mgr'],
'age':40.5}
rec['name']
rec['name']['last']
rec['job'].append('janitor')
D={'a':1,'b':2,'c':3}
ks=D>keys()
ks.sort()
for key in ks:
print key,'=>',D[key]

for key in sorted(D):
print key,'=>',D[key]
迭代和优化
square=[x**2 for x in [1,2,3,4]]
square=[]
for x in [1,2,3,4]:
square.append(x**2)
不存在的键 if测试
D.has_key('f')
if not D.has_key('f'):
print 'missing'
元组 是不可变的序列
T=(1,2,3)
文件
f=open('data.txt','w')
f.write('Hello\n')
f.write('world\n')
f.close()
f=open('data.txt')
bytes=f.read()
print bytes
bytes.split()

第五章 数字
数字常量
混合类型自动升级
传统除法,Floor除法和真除法
内置的int函数会将一个数字的字符串变换为一个整数,并可以通过定义的第二个参数来确
定变换后的数字的进制
int('0100',8) int('0x40',16)
eval(s)可以把一个八进制或者十六进制的字符串转换为正常的整数,但是开销更大可能导致
安全问题
int(2.56) round(2.567) round(2.567,2)
小数数字
from decimal import Decimal
Decimal('0.1')+Decimal('0.1')+Decimal('0.1')-Decimal('0.3')

第六章 动态类型简介
a=3
创建一个对象来代表值3
创建一个变量a,如果它还没有创建
把变量和新的对象3连接

变量是一个系统表的元素,拥有指向对象的连接的空间
对象是被分配的一块内存,有足够的空间去表现它们所代表的值
引用是自动形成的从变量到对象的指针
注意共享引用的问题
a=[1,2,3]
b=a
a=2

a=[1,2,3]
b=a
a[0]=2

a=[1,2,3]
b=a[:]
a[0]=2
对于字典共享引用的问题解决使用copy deepcopy方法

L=[1,2,3]
M=L
L==M TRUE
L is M TRUE
==是测试两个被引用的对象是够具有相同的值
is操作符是检查对象的同一性

Python 学习---------Day2的更多相关文章

  1. Python学习-day2

    这周时间充裕,把第一周的两个作业登陆验证和三级菜单做完后又用零零散散的时间看完了第二周的课程,不得不说老男孩这个教育方式感觉还是不错的,其实说白了就是花钱找个人监督自己学习呗,而且还强行让我们养成一些 ...

  2. python学习day2

    一.模块初识 python模块 模块让你能够有逻辑地组织你的Python代码段. 把相关的代码分配到一个 模块里能让你的代码更好用,更易懂. 模块也是Python对象,具有随机的名字属性用来绑定或引用 ...

  3. python学习day2(二)

    1.类与对象的关系 对于Python,一切事物都是对象,对象基于类创建 type是获取类的 dir是获取这个类里面的成员 2.int内部功能介绍 bit_length:返回表示当前数字占用的最少位数: ...

  4. python学习day2(一)

    一.上周作业回顾 1.登陆接口: 思路流程: 1.登陆,三次锁定用户 2.用户信息文件,黑名单文件 3.检测黑名单,如输入账号在黑名单中存在,不允许登陆 4.用户密码判断 主要知识点:while,fo ...

  5. python学习Day2 python 、pycharm安装及环境变量配置

    复习 进制转换:二进制&十六进制转换(从左往右1248机制,每四位二进制对应一位16进制) 二进制&十进制转换   2n-1幂次方相加 十进制到二进制转化  将十进制除以2,把余数记下 ...

  6. python学习 day2 (3月2日)

    .if if else 和 if elif else 的区别是: 前者 判断第一个 判断完第二个 之后还会执行else: 后者是只有满足条件(即都不符合if.elif里的条件时才会进入else) 不清 ...

  7. Python学习Day2笔记(字符编码和函数)

    1.字符编码 #ASCII码里只能存英文和特殊字符 不能存中文 存英文占1个字节 8位#中文编码为GBK 操作系统编码也为GBK#为了统一存储中文和英文和其他语言文字出现了万国码Unicode 所有一 ...

  8. Python学习Day2笔记(集合和文件操作)

    1.集合的使用 列表是有序的可包含重复内容的 集合是无序的不可包含重复内容的 1) 集合关系测试 #列表去重list_1=[1,4,5,6,7,8,9,7,5,4,23,2] #有重复数据 list_ ...

  9. Python学习day2 while循环&格式化输出&运算符

    day2 运算符-while循环 1.while循环 while循环基本结构; while 条件:      结果    # 如果条件为真,那么循环则执行    # 如果条件为假,那么循环不执行 de ...

  10. Python学习日记 --day2

    Python学习日记 --day2 1.格式化输出:% s d  (%为占位符 s为字符串类型 d为数字类型) name = input('请输入姓名') age = int(input('请输入年龄 ...

随机推荐

  1. JcClient Ip Get

    ##通道##123.207.157.82:18425## ##通道##112.95.251.214:18425## ##通道##110.52.233.5:18425## ##通道##119.29.19 ...

  2. Ping of Death

    [Ping of Death] The ping of death attack, or PoD, can cripple a network based on a flaw in the TCP/I ...

  3. 查看已安装的CentOS版本信息:

    如何查看已安装的CentOS版本信息: 1)[root@localhost ~]# cat /proc/version Linux version 2.6.18-194.el5 (mockbuild@ ...

  4. Linux SSH,FTP服务配置

    CentOS-6.4-x86_64-minimal 0.网卡配置 参考:Linux系统\Centos没有网卡eth0配置文件怎么办? - http://jingyan.baidu.com/articl ...

  5. 【Python全栈笔记】03 [模块二] 16-17 Oct 函数

    定义一个函数 def function_name(形式参数): 代码块 return 'Value' #如果没有写return,则默认返回None # 一个函数到return这一行就结束执行了,在re ...

  6. JavaScript 随笔2 面向对象 原型链 继承

    第六章 面向对象的程序设计 1.创建对象的几种方式 A)工厂模式 function CreatObj(name,sex,age){ this.name=name; this.sex=sex; this ...

  7. Spring Framework------>version4.3.5.RELAESE----->Reference Documentation学习心得----->Spring Framework中web相关的知识(概述)

    Spring Framework中web相关的知识 1.概述: 参考资料:官网documentation中第22小节内容 关于spring web mvc:  spring framework中拥有自 ...

  8. modelsim 中 WAVE窗口中能不能只显示变量名,而不显示路径

    可以的,在wave窗口左下角有一个黑色的logo,你点击它就可以省电路径,只显示port名称,再点击就切换回来了,如图红色圈圈标记的logo,你可以试试!

  9. Fiddler抓包之IOS

    Fiddler是一个http协议调试代理工具,它能够记录并检查所有你的电脑和互联网之间的http通讯,设置断点,查看所有的"进出"Fiddler的数据(指cookie,html,j ...

  10. 查看Windows服务器登录日志

    本文以Windows7系统为例:[控制面板]——[管理工具]——[查看事件日志]——[Windows日志]——[安全].此时在视图窗口应该可以看到登录信息了,如果需要知道具体信息那么可以点击某条记录或 ...