python学习笔记2
参考http://www.cnblogs.com/wupeiqi/articles/5444685.html
1.运算符
+ - * / ** & //
判断摸个东西是否在摸个东西里面包含
in not in
结果是值
算数运算
a = 10*10
赋值运算
a = a+1 a+=1
结果是布尔值
比较运算
a = 1>5
逻辑运算
a = 1>6 or 1==1
成员运算
a="文" in "郑建伟"
2.基本数据类型
python2参考:http://www.cnblogs.com/wupeiqi/articles/5433925.html
数字 数字比作猎人,字符串比作女巫
在python3中都用所有整型都是int型
在python2中长整型
a1=123
a1=456
-int
将字符串转换为数字
a="123"
print(type(a),a)
b=int(a)
print(type(b),b)
num="0011"
v = int(num,base=2)
num="a"
v=int(num,base=16)
print(v)
-bit_length
#当前数字的二进制至少用几位表示
r=age.bit_length()
字符串 str
定义:它是一个有序的字符的集合,用于存储和表示基本的文本信息,‘’或“”或‘’‘ ’‘’中间包含的内容称之为字符串
特性:
1.只能存放一个值
2.不可变
3.按照从左到右的顺序定义字符集合,下标从0开始顺序访问,有序
补充:
1.字符串的单引号和双引号都无法取消特殊字符的含义,如果想让引号内所有字符均取消特殊意义,在引号前面加r,如name=r'l\thf'
2.unicode字符串与r连用必需在r前面,如name=ur'l\thf'
s1="sad"
s2="qwert"
字符串常用操作
移除空白
分割
长度
索引
切片
#首字母大写
v=test.capitalize()
print(v)
#所有变小写,casefold更流弊,很多未知的对相应变小写
v1=test.casefold()
v1=test.lower()
# 设置宽度,并将内容居中
# 20代指总长度
# 空白未知填充,一个字符可有可无
test="alex"
v1=test.center(20,"*")
test="alexalexr"
v2=test.count('ex')
print(v1,v2)
********alex******** 2
test="alex"
v=test.ljust(20,"*")
print(v)
alex****************
test="alex"
v=test.rjust(20,"*")
print(v)
****************alex
用0填充
test="alex"
v=test.zfill(20)
print(v)
0000000000000000alex
#去字符串中寻找子序列出现的次数,可设置起始位置
v=test.count('ex',5,6)
encode
decode
#以什么什么开始
v=test.endswith('xr')
# 以什么什么开始
v=test.startswith('xr')
#
test="123456789\t9"
v=test.expendtabs(6)
print(v,len(v))
#从开始往后走,找到第一个之后,获取其未知
>或>=
v=test.find('ex',5,8)
#格式化,将一个字符串中的占位符替换为指定的值
test='i am {name},age{a}'
print(test)
v=test.format(name='alex',a=19)
print(v)
test='i am {0},age{1}'
print(test)
v=test.format('alex',a=19)
print(v)
i am {name},age{a}
i am alex,age19
#格式化,输入的值{"name":'alex','a':19}
test='i am {name},age{a}'
v1=test.format(name='df',a=10)
v2=test.format_map({"name":'alex','a':19})
print(v1)
print(v2)
i am df,age10
i am alex,age19
#判断字符串中是否只包含字母数字
test="uads892"
v=test.isalnum()
print(v)
#expandtabs,断句20,
test="username\temail\tpassword\nlayying\tlaiying@qq.com\t123\nlayying\tlaiying@qq.com\t123\n"
v=test.expandtabs(20)
print(v,len(v))
username email password
layying laiying@qq.com 123
layying laiying@qq.com 123
#是否是字母和汉字
test = 'asd2f'
v=test.isalnum()
print(v)
#判定当前输入是否是数字
test='123'
v1=test.isdecimal()
v2=test.isdigit()
print(v1,v2)
#字母,数字,下划线:标识符def calss
a="def"
v=a.isidentifier()
print(v)
#是否存在不可显示的字符
#\t 制表符 \n换行
test="oiuas\tasdada"
v=test.isprintable()
print(v)
#判断是否全为空格
test=" "
v=test.isspace()
print(v)
判断是否是标题以及变成标题
test="Return Ture if all cased cahracters in S are uppercase and there is"
v1=test.istitle()
print(v1)
v2=test.title()
print(v2)
v3=v2.istitle()
print(v3)
False
Return Ture If All Cased Cahracters In S Are Uppercase And There Is
True
# 将字符串的每一个元素按照指定分隔符进行拼接
test="你是风儿我是沙"
print(test)
v="_".join(test)
print(v)
你是风儿我是沙
你_是_风_儿_我_是_沙
#判断是否是大小写,和转化为大小写
test="Alex"
v1=test.islower()
v2=test.lower()
print(v1,v2)
False alex
test="Alex"
v1=test.isupper()
v2=test.upper()
print(v1,v2)
False ALEX
# 去除左右空白,\t,\n,移除指定字符有限最多匹配
test=" \nxalex "
v=test.lstrip('9awex')
# v=test.lstrip()#
# v=test.lstrip()
print(v)
# 对应关系替换
v = "adqweq;qweqwrqwet"
m = str.maketrans("aeiou","12345")
new_v = v.translate(m)
print(new_v)
1dqw2q;qw2qwrqw2t
#分割字符串
test="testasdghhj"
v=test.partition('s')
print(v)
# test.rpartition()
# test.split()
# test.rsplit()
#分割,只能根据,true,false是否保留换行
test="testasdghhj"
v=test.splitlines(False)
print(v)
#以xxx开头,以xx结尾
test="backend 1.1.1.1"
v=test.startswith('a')
print(v)
test.endswith('a')
# 大小写转换,大写换小写,小写换大写
test="aLEx"
v=test.swapcase()
print(v)
AleX
6个基本魔法
join
split
find
strip
upper
lower
replace
test="alexalexalex"
v=test.replace("ex",'bbb')
print(v)
v=test.replace("ex",'bbb',2)
print(v)
灰魔法(几乎所有数据类型皆可用)
test="alex"
索引,下标,获取字符串中的某一个字符
#v=test[1]
#print(v)
切片
v=test[0:1]#0=< <1
print(v)
v=test[0:-1]#-1到最后的位置
print(v)
len获取当前字符串中有几个字符组成
test=""
v=len(test)
print(v)
#注意:
#len("asdf")
#'_',join("asdfaf")
test="萨达所大多"
count=0
while index < len(test)
v=test[index]
print(v)
index += 1
print('====')
for循环
for 变量名 in 字符串:
test="萨达所大多"
# index=0
# while index < len(test):
# v=test[index]
# print(v)
# index += 1
# print('====')
for zjw in test:
print(zjw)
深灰魔法
字符串在内存中一旦创建就不可修改
一旦修改或创建,都会造成重新生成字符串
name="zhenjasd"
age="18"
info=name+age
print(info)
#帮助创建连续的数字,通过设置步长来指定不联系
# v=range(100)#0~~99
v=range(0,100,5)
for item in v:
print(item)
#将文件对应的索引打印出来
test=input('>>>')
print(test)
l=len(test)
print(l)
r=range(0,12 )
for item in r:
print(item,test[item])
test = input('>>>')
for item in range(0,len(test)):
print(item, test[item])
列表 list
...
元祖 tuple
...
字典 dict
...
布尔值 bool
...
==
<
>
>=
<=
!=不等于
<>不等于
v=user=='alex' and pwd="123" or 1==1
v=user=='alex' and pwd="123"
v=not False
补充:
先计算括号内的
执行顺序:
从前到后
结果
True OR ==> True
True AND ==>继续走
False OR ==>继续走
False AND ==>False
user=='alex' and (pwd="123" or 1==1)
user="alex"
pwd="123"
user=='alex' and (pwd="123" or 1==1 and pwd=="99854")
注意:
布尔值:
Ture 真
False假
if True:
pass
while Ture:
pass