第四章 介绍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. 史航416第11次作业&总结

    作业1:冒泡排序 #include <stdio.h> ],int n); int main() { ],n,i; printf("输入一个整数n:"); scanf( ...

  2. python项目实践一:即时标记

    转自:http://www.code123.cc/1317.html 这是<python基础教程>后面的实践,照着写写,一方面是来熟悉python的代码方式,另一方面是练习使用python ...

  3. I/O流——其他流

    其他流 一.ObjectInputStream/ObjectOutputStream ① ObjectInputStream和ObjectOutputStream分别与FileInputStream和 ...

  4. 阿里云 ECS 逻辑卷挂载数据盘

    查看磁盘信息: [root@ixx~]# fdisk -l Disk /dev/xvda: 21.5 GB, 21474836480 bytes 255 heads, 63 sectors/track ...

  5. configparser配置文件操作

    configparser 模块用于对配置操作  官方文档地址https://docs.python.org/3/library/configparser.html 导入configparser模块 i ...

  6. django 1.8 评论库comments配置问题

    comments库是django框架内置的评论库,可以快速搭建网站需要的评论系统.不过1.8的配置和1.6的出现了一点小小配置,由于刚刚接触,按照网上的文档配置,需要在 settings.py的INS ...

  7. 深入浅出Symfony2 - 结合MongoDB开发LBS应用

    简介 随着近几年各类移动终端的迅速普及,基于地理位置的服务(LBS)和相关应用也越来越多,而支撑这些应用的最基础技术之一,就是基于地理位置信息的处理.我所在的项目也正从事相关系统的开发,我们使用的是S ...

  8. java 删除所有HTML工具类

    import java.util.regex.Matcher;import java.util.regex.Pattern; public class HtmlUtil { private stati ...

  9. Linux新建用户无法使用tab补全的修改办法

    原因: Root用的是/bin/bash 新增用户默认用的是/bin/sh,用ls -l /bin/sh发现 ->dash,修改下连接即可正常使用:

  10. Markdown: 用写代码的思维写文档

    作者:吴香伟 发表于 2014/08/07 版权声明:可以任意转载,转载时务必以超链接形式标明文章原始出处和作者信息以及版权声明 本文不讲解Markdown的语法规则,只关注它带来的好处以及我使用的方 ...