Python 学习---------Day2
第四章 介绍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的更多相关文章
- Python学习-day2
这周时间充裕,把第一周的两个作业登陆验证和三级菜单做完后又用零零散散的时间看完了第二周的课程,不得不说老男孩这个教育方式感觉还是不错的,其实说白了就是花钱找个人监督自己学习呗,而且还强行让我们养成一些 ...
- python学习day2
一.模块初识 python模块 模块让你能够有逻辑地组织你的Python代码段. 把相关的代码分配到一个 模块里能让你的代码更好用,更易懂. 模块也是Python对象,具有随机的名字属性用来绑定或引用 ...
- python学习day2(二)
1.类与对象的关系 对于Python,一切事物都是对象,对象基于类创建 type是获取类的 dir是获取这个类里面的成员 2.int内部功能介绍 bit_length:返回表示当前数字占用的最少位数: ...
- python学习day2(一)
一.上周作业回顾 1.登陆接口: 思路流程: 1.登陆,三次锁定用户 2.用户信息文件,黑名单文件 3.检测黑名单,如输入账号在黑名单中存在,不允许登陆 4.用户密码判断 主要知识点:while,fo ...
- python学习Day2 python 、pycharm安装及环境变量配置
复习 进制转换:二进制&十六进制转换(从左往右1248机制,每四位二进制对应一位16进制) 二进制&十进制转换 2n-1幂次方相加 十进制到二进制转化 将十进制除以2,把余数记下 ...
- python学习 day2 (3月2日)
.if if else 和 if elif else 的区别是: 前者 判断第一个 判断完第二个 之后还会执行else: 后者是只有满足条件(即都不符合if.elif里的条件时才会进入else) 不清 ...
- Python学习Day2笔记(字符编码和函数)
1.字符编码 #ASCII码里只能存英文和特殊字符 不能存中文 存英文占1个字节 8位#中文编码为GBK 操作系统编码也为GBK#为了统一存储中文和英文和其他语言文字出现了万国码Unicode 所有一 ...
- Python学习Day2笔记(集合和文件操作)
1.集合的使用 列表是有序的可包含重复内容的 集合是无序的不可包含重复内容的 1) 集合关系测试 #列表去重list_1=[1,4,5,6,7,8,9,7,5,4,23,2] #有重复数据 list_ ...
- Python学习day2 while循环&格式化输出&运算符
day2 运算符-while循环 1.while循环 while循环基本结构; while 条件: 结果 # 如果条件为真,那么循环则执行 # 如果条件为假,那么循环不执行 de ...
- Python学习日记 --day2
Python学习日记 --day2 1.格式化输出:% s d (%为占位符 s为字符串类型 d为数字类型) name = input('请输入姓名') age = int(input('请输入年龄 ...
随机推荐
- C#中Invoke 和 BeginInvoke 的区别
Control.Invoke 方法 (Delegate) :在拥有此控件的基础窗口句柄的线程上执行指定的委托. Control.BeginInvoke 方法 (Delegate) :在创建控件的基础句 ...
- C++函数CString类常用函数
C++ STL库里有很多与字符串操作相关的函数,熟练应用STL,字符串的处理将变得轻松.自在. 字符串截取函数: 1.CString Left( int nCount ) const; //从左 ...
- 【Python全栈笔记】01 [模块二] 14-15 Oct 运算符和字符串 4-1
编码的问题 中文版 Windows 终端是默认GBK编码格式,python2默认为ASCII编码,虽然我们注释了需要用UTF-8,但是通过命令行运行的文件如果print中文内容还是会出现乱码. Uni ...
- IOS TableView 去除点击后产生的灰色背景
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPa ...
- pod导入融云路径报错解决办法
build Settings中搜索sear Search Patchs下点开Library Search Paths 将$(inherited)"$(SRCROOT)/Pods"分 ...
- FastDFS.Client操作文件服务器
1.配置文件设置 <configSections> <section name="fastdfs" type="FastDFS.Client.Confi ...
- Unity(四)IocContainer 封装类库
首先要在项目中安装Unity,通过NuGet搜索Unity. 1.定义接口 IDependencyResolver using System; using System.Collections.Gen ...
- double四舍五入,double四舍五入并转成string
import java.math.BigDecimal; /** * 处理一些数据类型的方法的java类 * @author ljb * */public class NumberTools { /* ...
- Linux字符串截取和处理命令 cut、printf、awk、sed、sort、wc
1. cut [选项] 文件名 -f 列号 #提取第几列(分隔符默认为\t) -d 分隔符 #指定分隔符 例如:cut -f 2 a.txt #截取文件a.txt内容的第二列(列号从1开始) cu ...
- 如此清除sql server 2008 记住的用户名
在C盘下搜索这个文件 SqlStudio.bin 搜索到后删除就可以,这样登录Sql server 时就不会有用户名密码之类的,相当于做了初始化操作,但里面的数据库什么的都是有的. 这只是个删除记住 ...