数据类型
int ,float,bool,complex(复数10+10j)
python2.x中还有long
科学计数法得到的数是float。12e2 = 1200.0
优先级:数学运算符>比较运算符>逻辑运算符>赋值运算符
数学运算符:
- / % // **
特别注意,如果运算结果是float,那么结果是不精确的,如
print (2.4-2 ==0.4) #False,
所以不能用以上这种方法来判读一些问题
- / % // **
运算符
比较运算符:
> < == != <= >=
逻辑运算符:
and, or ,not
结果都是bool,有短路机制,所以要想好写在前面的条件
赋值运算符:
= += -= *= /= //= **=
a=2;a**=3,#a=8
先计算得到右边的结果,在运算赋值运算符。
进制
进制 2 8 10 16
符号 0b/0B 0o/0O 0x/0X
转换 bin() oct() hex()
进制 原码 反码 补码
正数 01010 01010 01010
负数 11010 10101 10110
位运算(进行位运算用的是补码,运算得到负数要转换为原码)
& :同1为1;作用:让指定位置置0或保留某一位的值,如奇数 num&1 =1,偶数num&1 = 0
| :同0为0,作用:让指定位置1,
^(异或):不同为1,相同为0;取反包含符号位,正数变负数。
得到负数要转换位原码
~(取反)
~0b0101 = ~0b0101(补码) = 0b1010(补码) = 0b1110
~0b1101 = ~0b1011(补码) = 0b0100(补码) = 0b0100
>>:m>>n = m//(2^n)
右移,符号位不变,在符号位后补指定的0或1,正数补0,负数补1
<<:m<<n = m*(2^n) 左移,后面用0补齐
移动的是补码,小心!
字符串
python中的字符串用Unicode编码,其中包含了ASCII(用一个字节来对一个字符进行的编码)
chr(数字)返回字符
ord(字符)获得Unicode编码
可直接在字符串中写对应的编码值:\u+4位16进制,如:\u12ab
阻止转义:r/R
切片s[1:-1:2];s[-1:1:-1],s[1::2];s[-1::-1]
字符串的运算* +
in not in
字符串内置函数
1.大小写:
|capitalize()|将字符串的第一个字符转换为大写
|lower()|转换字符串中所有大写字符为小写.
|upper()|转换字符串中的小写字母为大写
|swapcase()|将字符串中大写转换为小写,小写转换为大写
36 |title()|返回"标题化"的字符串,就是说所有单词都是以大写开始,其余字母均为小写(见 istitle())
2.对齐
ljust(width[, fillchar])|返回一个原字符串左对齐,并使用 fillchar 填充至长度 width 的新字符串,fillchar 默认为空格。
rjust(width,[, fillchar])|返回一个原字符串右对齐,并使用fillchar(默认空格)填充至长度 width 的新字符串
center(width, fillchar)|返回一个指定的宽度 width 居中的字符串,fillchar 为填充的字符,默认为空格。
|zfill (width)|返回长度为 width 的字符串,原字符串右对齐,前面填充0
3.is…………
isalnum()|如果字符串至少有一个字符并且所有字符都是字母或数字则返 回 True,否则返回 False
isalpha()|如果字符串至少有一个字符并且所有字符都是字母则返回 True, 否则返回 False
|isdigit()|如果字符串只包含数字则返回 True 否则返回 False..
|islower()|如果字符串中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是小写,则返回 True,否则返回 False
|isnumeric()|如果字符串中只包含数字字符,则返回 True,否则返回 False(中文数字也可以)
|isspace()|如果字符串中只包含空白,则返回 True,否则返回 False.
istitle()|如果字符串是标题化的(见 title())则返回 True,否则返回 False
|isupper()|如果字符串中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是大写,则返回 True,否则返回 False
4.截取
|lstrip()|截掉字符串左边的空格或指定字符。 Lstrip("kdjf")去掉开头中所有在字符集"kdjf"中字符
|rstrip()|删除字符串字符串末尾的空格.
|strip([chars])|在字符串上执行 lstrip()和 rstrip()
|split(str="", num=string.count(str))|num=string.count(str)) 以 str 为分隔符截取字符串,如果 num 有指定值,则仅截取 num 个子字符串
|splitlines([keepends])|按照行('\r', '\r\n', \n')分隔,返回一个包含各行作为元素的列表,如果参数 keepends 为 False,不包含换行符,如果为 True,则保留换行符。
4.变换字符串内容
join(seq)|以指定字符串作为分隔符,将 seq 中所有的元素(的字符串表示)合并为一个新的字符串
|replace(old, new [, max])|把 将字符串中的 str1 替换成 str2,如果 max 指定,则替换不超过 max 次。
5.查找下标,个数,最大(小)字母
len(string)|返回字符串长度
max(str)|返回字符串 str 中最大的字母。
min(str)|返回字符串 str 中最小的字母。
count(str, beg= 0,end=len(string))|返回 str 在 string 里面出现的次数,如果 beg 或者 end 指定则返回指定范围内 str 出现的次数
find(str, beg=0 end=len(string))|检测 str 是否包含在字符串中,如果指定范围 beg 和 end ,则检查是否包含在指定范围内,如果包含返回开始的索引值,否则返回-1
rfind(str, beg=0,end=len(string))|类似于 find()函数,不过是从右边开始查找.
index(str, beg=0, end=len(string))|跟find()方法一样,只不过如果str不在字符串中会报一个异常.
rindex( str, beg=0, end=len(string))|类似于 index(),不过是从右边开始.
6.开始结束
endswith( suffix, beg=0, end=len(string))|检查字符串是否以 obj 结束,如果beg 或者 end 指定则检查指定的范围内是否以
obj 结束,如果是,返回 True,否则返回 False.
startswith(str, beg=0,end=len(string))|检查字符串是否是以 obj 开头,是则返回 True,否则返回 False。如果beg 和 end 指定值,则在指定范围内检查。
循环分支
for _ in 序列:
while bool(条件):
range(n):产生一个0~n-1的整数序列(python2.x中是xrange).
range(m,n)
range(m,n,step) 间隔位step
注意:如果取到的变量num是不需要的,只是循环,可以用 _ 来代替变量.
如果是不断的获取序列中的元素,直接用for循环.
如果循环次数确定,最好也用for循环
死循环和循环次数不确定的时候最好用while
break,continue,自然结束后运行的else