标识符和关键字

1,邮箱的Python标识符是任意长度的非空字符序列(引导字符+后续字符。)

python标识符必须符合两条规则--标识符区分大小写

(1)只要是unicode编码字母都可以充当引导字符,包括unicode编码中认为是数字的任意字符。

(2)关于(_) 的使用,名的开头和结尾尽量避免使用(_)

for _ in [1,2,3,4,5]

print(" _ 可省略变量")

Intergral类型

2,python提供了两个内置订单Intergral类型:int,bool

在布尔表达式中:0 与 False 表示Flase,其他任意整数都表示True

其他表达式中:True表示1,False表示0

整数

3,整数的大小只受限于机器的内存大小

二进制使用0b开头

八进制使用0o开头

十六进制使用0x开头 (后面字符不区分大小写)

数值操作符

+, -, *, /, //返回整数部分,%取余数,x**y 计算x的y次幂,

abs(x)表示x的绝对值

divmode(x,y)以二元组的形式返回x除以y所得的商和余数

pow(x,y)计算x的y次幂 等同于**

round(x,n)返回x四舍五入后得到的相应整数

使用数据类型创建对象

4,(1)不使用参数调用数据类型函数,会赋值一个默认值

整数位0,str为空字符,

>>> x=int()
>>> x
0
>>> x=str()
>>> x
''
>>> x=list()
>>> x
[]

 (2)使用一个参数调用数据类型函数

如果给定的类型是相同的数据类型,就创建一个新对象,新对象是原始对象的一个浅拷贝。

如果给定参数支持到给定数据类型的转换,但转换失败,会产生一个TypeError异常

如果给定的参数不是相同的数据类型,会尝试进行数据转换

bin(i) 返回i的二进制表示

hex(i) 返回i的十六进制表示

int(i) 将对象i转换为证书,失败时会产生一个ValueError异常,如果没有到整数的转换,会报TypeError异常,如果i是一个浮点数,会截取证书部分

int(s,base)将字符串s转换为证书,失败会产生ValueError异常,如果给定的可选的基参数,那么应该为2-36之间的证书

oct(i)返回i的8进制表示(字符串)

(3)给定两个或多个参数,但不是所有数据类型都支持,而对支持的这一数据类型,参数类型以及内涵都是变化的。

布尔类型True,False

浮点类型

float 表示双精度浮点数,浮点数表示的是近似值,而非实际值

complex

decimal.Decimal 需要高精度时(可表示小数点后28位),并可以准确的表示循环小数(适用于财务计算)

计算机中使用基数2表示浮点数

混合运算

int和float生成float

float与complex生成 complex

decimal.Decimal是混合精度,只能用于decimal.Decimal和intS

浮点数

x=float(),返回0.0,x=float(i)返回该参数的一个拷贝,指定的任意数据类型都会尝试转换

在设计floatS的计算时,可能会生成NaN或无穷

int() 舍去小数部分

round() 四舍五入取整

math.ceil(),math.floor()返回向上,或向下转换为最接近的整数

float.hex()可以将浮点数以16进制形式表示为字符串,相反可以使用float.fromhex()

math.acos(x) 返回弧度的反余弦

mathi.acosh(x)返回x的反正切

math.asin(x)返回x的反正弦

math.asinh(x)返回x的反双曲正切

math.atan2(y,x) 返回y/x的反正切

math.atanh(x)返回x的反双曲正切

math.ceil(x)返回大于或等于x的最小整数

math.copysign(x,y),将x的符号设置为y的符号

math.cos(x) 返回弧度x的余弦

math.cosh(x) 返回弧度x的余弦值(角度)

math.degrees(r)将浮点数r从弧度转换为角度a

math.e  常数 e,2.7182818284590451

math.exp(x) 返回e的x次幂

math.fabs(x)返回|x|,浮点数x的绝对值

math.factorial(x)返回x!

math.floor(x) 返回小于或等于x的最小整数

math.fmod(x,y)生成x除以y后的余数,这会比用于浮点数的%更好的结果

math.frexp(x) 返回一个二元组,分别为x的指数整数与浮点数部分

math.fsum(a) 返回 iterable i的值进行求和,浮点数

math.hypot(x,y) 返回  x的平方+y的平方 开根号

math.isinf(x)如果浮点数x是+-无穷,返回true

math.isnan(x)如果x不是一个数字,返回true

math.ldexp(m,e)返回m*2的e次幂,翻转了frexp函数

math.log(x,b),math.log10(x),math.loglp(x)返回log以e为底(1+10)在x近似于0的时候更准确

math.modf(x)以floatS的形式返回x的小数与整数部分

复数

复数是固定的,其中存放的是一堆浮点数,一个表示实数部分,一个表示虚数部分

>>> z=10+2j
>>> z.real,z.imag
(10.0, 2.0)

  math模块中数函数不能处理复数

十进制数

十进制数是使用decimal.Decimal()函数创建的,接受一个整数或字符串作为参数,但不能以浮点数作为参数,因为浮点数不够青雀

字符串

字符串是固定不变的,其存放的是Unicode字符序列

字符串跨行可以使用原字符r,同时也可以

>>> s="hello"+\
"world"
>>> s
'helloworld'
>>> s=("hello"
"world")
>>> s
'helloworld'

  字符串比较

字符串比较可以使用<,<=,==,!=,>,>=,此操作符在内存中逐个字节对字符串进行比较

字符串比较存在两个问题:

1,有些unicode字符可以使用两种或更多种字节序列来表示。

  可以使用:unicodedata模块以NFKD做第一个参数来调用unicodedata.normalize(),返回以UTF-8字节表示的字符串

2,有些字符串排序是特定于某种语言的。

  可以自定义python的排序方法

字符串分片与步距

字符串的索引位置从0开始,直至字符串长度减1,但是使用负索引位置也是可以的

>>> s="hello world"
>>> s[0]
'h'
>>> s[-1]
'd'

3种分片操作

(1)seq可以是任意序列,列表,字符串,元组,start,end ,step必须是整数

step表示每隔step提取一次

seq[start]

seq[start:end]

seq[start:end:step]

>>> s[0:2]
'he'
>>> s[0:2:2]
'h'

(2)使用[:]

s[:]=s[0:len(s)] 用于提取整个序列,start省略时start=0,end省略时end=len(s),step省略时step=1

字符串中使用+进行连接,使用+=进行追加并不高效,最好使用str.join()方法

(3)当step为复数时,start=-1,终点索引默认为字符串起点前面

step不能 为0.如果不需要step,那么应该使用第二种写法

当step是-1的时候会翻转字符串

字符串操作符与方法

字符串是固定序列,所有可用于序列的功能都可用于字符串

in关系测试,+=链接,*复制,*=增强的赋值复制

字符串方法

s.capitalize()返回字符串s的副本,并将首字符变大写

s.center(width,char)返回s中间部分的一个子字符串,长度为width,并使用空格或者可选的char进行填充。

s.count(t,start,end)返回字符串s中子字符串t出现的次数

s.encode(encoding,err)返回bytes对象,该对象使用默认的编码格式或指定的编码格式或指定的编码格式来显示该字符串,并根据可选的err参数处理错误

s.endswith(x,start,end) 如果s以字符串x结尾,返回true,否则返回false

s.expandtabs(size)返回s的一个副本,其中的制表符使用8个或指定数量的空格替换

s.find(t,start,end)返回t在s中的最左位置,如果没有找到,就返回-1,使用str.rfind()可以发现相应的最右边位置

s.format(...)返回按给定参数进行格式化后的字符串副本

>>> s="'{0}' is good guy "
>>> s.format("hiuyeung",s)
"'hiuyeung' is good guy "

s.index(t,start,end)返回t在s中的最左边位置,如果没有找到,就产生一个ValueError异常,str.rindex()返回右边开始搜索

s.isalnum(),如果s非空,并且其中的每个字符都是字符数字的,就返回true

s.isalpha(),如果s非空,并且其中的每一个字符都是字符,返回true

s.isdecimal() ,如果s非空,并且每一个字符都是unical的基数为10的数字,就返回true

s.isdigit(),如果s非空,并且每一个字符都是Ascii数字,就返回true

s.isidentifier(),如果s非空,并且是一个有效的标识符,就返回true

s.islower(),如果s至少有一个可小写的字符,并且其所有课小写的字符都是小写的,就返回true

s.isnumeric() 如果s非空,并且其中的每个字符都是数值型的unicode字符,比如数字或者小数,就返回true

s.isprintable()如果s非空,并且其中的每个字符被认为是可打印的,包括空格,单不包括换行,就返回true

s.isspace()如果s非空,并且其中的每个字符都是空白字符,返回true

s.istitle(),如果s是一个非空的首字符大写的字符串,就返回true

s.isupper(),如果s至少有一个可大写的字符,并且所有可大写的字符都是大写,就返回true

s.join(seq),返回seq中每个项链接起来后的结果,并以s在每两项之间分隔

s.ljust(width,char) 返回长度为width的字符串中左对齐的字符串s的一个副本,使用str.rjust()可以右对齐,str.center()可以中间对齐

s.lower() 将s中的字符串变为小写

s.maketrans(),与str.translate()类似

s.partition(t)返回包含3个字符串的元组--字符串s在t的最左边之前的部分,t,字符串s在t之后的部分,如果t不在s内,则返回s与两个空字符串

>>> s.partition(" ")
('hello', ' ', 'world')
>>> s.partition("o")
('hell', 'o', ' world')

  

s.replace(t,u,n)返回s的一个副本,其中每个字符串(最多n个)t使用u替换

s.split(t,n)返回字符串列表,要求在字符串t处至多分隔n次,如果没有给定n,就可能分隔尽可能多次,如果t没有给定,就再空白处进行分隔,str.rsplit()可以从右边进行分隔,只有给定n并且n小于可能分隔的最大次数时才起作用

s.splitlines(f)返回在行终结符处进行分隔产生的行列表

s.startswith(x,start,end)如果s(或者s的start:end分片)以字符串x开头,就返回true

s.strip(chars)返回s的一个副本,并将开始处与结尾处的chars符移除,s.lstrip,s.rtrip分别移除开始和结尾的相应字符

s.swapcase()返回s的副本,并将其中的大写换小写,小写换大写

s.title() 返回s的副本,并将每个单子的首字符变大写,其他字符变小写

s.translate() 与str.maketrans()类似

s.upper()返回s的大写版本dde

s.zfill(w)返回s的副本,如果比w短,就再开始处增加0,使其长度为w

len()返回字符串长度,如果字符串是空,就返回0

+操作符用于字符串链接,如果需要链接大量的字符串,使用str.join效率更高,该方法以一个序列做为参数

并将其链接在一起存放在一个单独的字符串中

>>> t=["hello","world","baby"]
>>> "".join(t)
'helloworldbaby'
>>> " ".join(t)
'hello world baby'

 与reversed函数一起使用,实现字符串翻转

>>> t=["hello","world","baby"]
>>> " ".join(reversed(t))
'baby world hello'
>>> s="hello world"
>>> "".join(reversed(s))
'dlrow olleh'
>>>

  *操作符提供字符串复制功能

>>> s="="*5
>>> s
'====='
>>> s*=10
>>> s
'=================================================='

  in提供字符串关系操作

>>> s="hello world"
>>> "hello" in s
True
>>> "llo" in s
True
>>>

  str.index,str.find 字符串超找功能

str.index(t,start,end)返回子字符串的索引位置,在失败时产生一个ValueError异常

str.find(s,start,end) 返回子字符串的索引位置,在失败时返回-1

>>> s="hello world"
>>> s.count("l")
3

字段名

>>> s="{who} is {age} years old!"
>>> s.format(who="My son",age="2")
'My son is 2 years old!' >>> s="{0} is {age} years old!"
>>> s.format("My son",age="2")
'My son is 2 years old!' #列表
>>> lst=["My son",2]
>>> s="{0[0]} is {0[1]} years old "
>>> s.format(lst) #字典
>>> d=dict(name="My son",age=2)
>>> s="{0[name]} is {0[age]} years old!"
>>> s.format(d)
'My son is 2 years old!' #当不指定索引时系统会自动从0开始进行赋值
>>> s="{}{}{}"
>>> s.format(1,2,3)
'123' #对象
>>> import math
>>> s="{0.pi} is pi"
>>> s.format(math)
'3.141592653589793 is pi' #映射拆分**locals()可以使用作用域内变量映射到一个字典中,这样就可以作为参数进行传递了
>>> name="my son"
>>> age=2
>>> s="{name} is {age} years old!"
>>> s.format(**locals())
'my son is 2 years old!'

  

字符串填充

>>> s="hello world!"
>>> "{0:30}".format(s)
'hello world! '
>>> "{0:>30}".format(s)
' hello world!'
>>> "{0:.<30}".format(s)
'hello world!..................'
>>> "{0:.^30}".format(s)
'.........hello world!.........'
>>> "{0:.^{1}}".format(s,40)
'..............hello world!..............' >>> "[{0:}],[{1:}]".format(250,-250)
'[250],[-250]' 显示符号
>>> "[{0:+}],[{1:+}]".format(250,-250)
'[+250],[-250]'
需要时显示符号
>>> "[{0:-}],[{1:-}]".format(250,-250)
'[250],[-250]' >>> "[{0:x}]".format(16)
'[10]'
>>> "[{0:o}]".format(16)
'[20]'
>>> "[{0:b}]".format(16)
'[10000]' >>> "[{0:#x}]".format(16)
'[0x10]'
>>> "[{0:#o}]".format(16)
'[0o20]'
>>> "[{0:#b}]".format(16)
'[0b10000]'

  

Python学习笔记(二)的更多相关文章

  1. python学习笔记(二)、字符串操作

    该一系列python学习笔记都是根据<Python基础教程(第3版)>内容所记录整理的 1.字符串基本操作 所有标准序列操作(索引.切片.乘法.成员资格检查.长度.最小值和最大值)都适用于 ...

  2. Python 学习笔记二

    笔记二 :print 以及基本文件操作 笔记一已取消置顶链接地址 http://www.cnblogs.com/dzzy/p/5140899.html 暑假只是快速过了一遍python ,现在起开始仔 ...

  3. (10.1)Python学习笔记二

    1.在项目工程中要模块化测试一个开发的功能,在测试通过后交付给项目组其他人员继续开发.要保证代码开发的性能和效率以及可扩展性. 2.项目工程中的文件夹分类要功能模块明确清晰,在python中引入某一个 ...

  4. Python学习笔记二

    ---恢复内容开始--- 一. python几种数据类型的比较. 从以下几个方面比较: 1. 是否可变. 不可变类型:变量的值可以发生变化,id也变了,相当于创建了一个新的对象,所以一修改值,id就变 ...

  5. python学习笔记(二):python数据类型

    上一篇博客写了python的入门和简单流程控制,这次写python的数据类型和各种数据类型的内置方法.一.数据类型是什么鬼?计算机顾名思义就是可以做数学计算的机器,因此,计算机程序理所当然地可以处理各 ...

  6. python学习笔记二:流程控制

    一.if else: #!/usr/bin/python x = int(raw_input('please input:')) if x >= 90: if x >= 95: print ...

  7. python 学习笔记二 (列表推导式)

    2018年年初写了第一篇博客,说要做一个认真的技术人 https://www.cnblogs.com/yingchen/p/8455507.html 今天已经是11月19日了,这是第二篇博客,看来坚持 ...

  8. python学习笔记二:(python3 logging函数中format说明)

    背景,在学习logging时总是遇到无法理解的问题,总结,尝试一下更清晰明了了,让我们开始吧! logging模块常用format格式说明 %(levelno)s: 打印日志级别的数值 %(level ...

  9. python 学习笔记(二):为元组的每个元素命名,提高程序的可读性

    在程序中有些数据为固定格式时,即字段数量确定.字段位置顺序确定不变,我们就可以用元组来储存.使用元组的优势是储存空间很小,访问速度也很快.如下代码对每个学生信息用元组来表示: # ('Jim', 16 ...

随机推荐

  1. python对象转化为json串、json串转化为python串

    1.1. JSON简介: JavaScript Object Notation(JavaScript对象表示法) JSON是存储和交换文本信息的语法.类似XML JSON比XML更小.更快.更易解析 ...

  2. Java中Iterator(迭代器)实现原理

    在Java中遍历List时会用到Java提供的Iterator,Iterator十分好用,原因是: 迭代器是一种设计模式,它是一个对象,它可以遍历并选择序列中的对象,而开发人员不需要了解该序列的底层结 ...

  3. Java API实现Hadoop文件系统增删改查

    Java API实现Hadoop文件系统增删改查 Hadoop文件系统可以通过shell命令hadoop fs -xx进行操作,同时也提供了Java编程接口 maven配置 <project x ...

  4. Alpha冲刺(4/10)——2019.4.27

    所属课程 软件工程1916|W(福州大学) 作业要求 Alpha冲刺(4/10)--2019.4.27 团队名称 待就业六人组 1.团队信息 团队名称:待就业六人组 团队描述:同舟共济扬帆起,乘风破浪 ...

  5. centos7证书安全登录

    生成一对密钥,本地私钥匹配线上主机的公钥进行登录,比密码登录更加安全方便. 本文适用MAC/Linux的本地环境 1.本地生成一对密钥 ssh-keygen -t rsa 2.把生成的公钥上传到线上主 ...

  6. 修复恢复"可疑"的SQLServer数据库

    今天机房突然断电,DB连不上了,提示 无法打开数据库'MyDB'.恢复操作已将该数据库标记为 SUSPECT. 原因是断电导致DB文件损坏 通过SQL Server Management Studio ...

  7. 基于SOUI开发一个简单的小工具

    基于DriectUI有很多库,比如 Duilib (免费) soui (免费) DuiVision (免费) 炫彩 (界面库免费,UI设计器付费,不提供源码) skinui (免费使用,但不开放源码, ...

  8. Docker构建YApi镜像, Docker安装YApi, Docker部署YApi

    概述 YApi 是高效.易用.功能强大的 api 管理平台,旨在为开发.产品.测试人员提供更优雅的接口管理服务.可以帮助开发者轻松创建.发布.维护 API,YApi 还为用户提供了优秀的交互体验,开发 ...

  9. NYOJ127 星际之门(一)【定理】

    星际之门(一) 时间限制:3000 ms  |  内存限制:65535 KB 难度:3 描写叙述 公元3000年,子虚帝国统领着N个星系,原先它们是靠近光束飞船来进行旅行的,近来,X博士发明了星际之门 ...

  10. 利用StringEscapeUtils来转义和反转义html/xml/javascript中的特殊字符

    我们经常遇到html或者xml在Java程序中被某些库转义成了特殊字符. 例如: 各种逻辑运算符: > >= < <= == 被转义成了 &#x3D;&#x3D ...