python学习笔记
数据类型
数字类型
int long float complex (复数)
c1=3.14j //创建一个复数
python3以后没有long类型
a="10";
b=int(a); //将字符串转为int
a=10;
b=float(a) //将整型转为浮点型
list=["aaa",1,2,5]
tuple=tuple(list) //将列表转元祖
tuple=("aaa",bbb,11,22)
list=list(tuple) //将元祖转列表
tuple=(("name","zhangsan"),("sex","nan"))
dict=dict(tuple) //将多维元祖转成字典(多维元祖的每个元祖中只能长度为2,即一个座位key,一个作为value,超过2个转字典就会报错)
dict={'name':'ls','sex':'m'}
yuanzu1=tuple(dict) //将字典转成元祖后只有字典的key没有value
不同进制互相转换
练习:
bin(int("10",10)) //十进制的10转成二进制
hex(int("17",8)) //8进制的"17"转成16进制
字符串的操作
python中的字符串从左到右索引默认是从0开始,
最大范围是字符串长度少1,从右到左索引是从-1开始(和java一样)
s1="a1"
s2="b1"
s3=s1+s2 //字符串拼接
python中的字符串可以是单引号,双引号,三引号类型s1="a1"s2='bbb's3='''aaabbbccc'''
字符串切分split(" ") //按空格切分
字符串替换replace("old","new") //字符串替换
字符串转大写upper() //将字符串转成大写
字符串转小写lower() //将字符串转小写
字符串首字母大写capitalize() //将字符串的首字母转成大写
string.count(str,beg,end) //返回str在string中出现的次数,如果beg,或end指定则返回指定范围内str出现的次数
string.center(width) //返回一个原字符串居中,并使用空格填充至长度为width的字符串,width小于字符串的长度时,返回字符串本省
string.decode(encoding='UTF-8'errors='strict') //字符串以指定的格式解码,如出错则报异常,除非errors指定为‘ignore’或者‘replace’
string.encode(encoding='UTF-8',errors='strict') //字符串以指定的格式编码,如出错则报异常,除非errors指定为‘ignore’或者‘replace’
string.endswith(str,beg,end) //判断字符串是否以str结尾,若指定起始区间,则在指定的区间中判断
string.startswith(str,beg,end) //判断字符串是否以str开头,若指定起始区间,则在指定的区间中判断
string.expandtabs(8) //可以将string中的tab缩进换成指定个数的空格,不指定空格数则表示去除tab缩进
string.find(str,beg,end) //在字符串中找str第一次出现的索引,若指定区间就在区间中找,找不到返回-1
string.index(str,beg,end) //和find方法一样,区别在于找不到会报异常
string.isdecimal() //如果string中只包含十进制数字则返回True,否则返回false
string.isdigit() //如果字符串中只包含数字则返回true,否则返回false
string.islower() //判断字符串是否全为小写,是则返回true
string.isupper() //判断字符串是否全为大写,是则返回true
string.ljust(width,“b”) //返回一个原字符串左对齐,并使用"b"填充至长度为width的字符串,若没指定用什么填充,默认为空格
string.zfill(width) //返回一个原字符串右对齐,并使用0填充至长度为width的字符串
string.lstrip(“b”) //截掉字符串左边的"b",未指定则默认切掉空格
string.strip("b") //去掉左右的字符串“b”,未指定则默认切掉空格
string.replace(str1,str2,num) // 把string 中的 str1 替换成 str2,如果 num 指定,则替换不超过 num 次
string.swapcase() //将string的大小写翻转
获取子字符串
s="abcdef"
s1 = s[1:3] //bc,[1:3]通过字符串下表获取子字符串,包含头但不包含尾
print s[0] //打印第一个字符
pritn s[2:] //打印第三个字符以后的所有字符
print s * 2 //打印两次字符串
print(s[:2]) //打印字符串的前两个字符,不包含结尾2的字符
python列表
ss=['a','b','c','d','e','f','g'] //定义一个列表字符串
print (ss[1:4]) //打印第二到第4的字符,包含1不包含4
print (ss[1:4:2]) //第三个参数2指定了步长,表示每个1个字符再取
print s[0] //打印第一个字符
pritn s[2:] //打印第三个字符以后的所有字符
print (ss * 2) //将列表中的元素重复放入列表2次
ss.append("h") //像列表中添加元素,添加到list末尾
del ss[2] //删除列表中的第3个元素
len(ss) //获取列表的长度
a=[1,2,3] b=[4,5,6]
print(a+b) //列表拼接[1,2,3,4,5,6]
列表常见函数:
a=[1,2,3] b=[4,5,6]
operator //比较两个列表
python元祖tuple1=('a','b','c','d','e','f')
print tuple1[0] //打印元祖的的第一个元素
print tuple1[1:3] //打印元祖的第二个到第三个元素
print tuple1[2:] //输出从第三个元素开始的所有的所有元素
print tuple1 * 2 //输出两次元祖列表中可以修改列表的值,
元祖中不能修改元祖的值
list1=['a','b','c','d','e','f']
tuple1=('a','b','c')
list1[2]='aaa' //合法应用
tuple1[2]='abc' //非法应用
python字典列表是有序的对象集合,字典是无序的对象集合
dict = {}
dict["one"] = "this is one" //将key为one的值设置为
this is onedict[2]="this is two" //将key为2的值设置为this is two
dict.keys() //获取所有的key
dict.values() //获取所有的values
python集合
set和dict类似,也是一组key的集合,但不存储value。无序和无重复元素的集合
ss=set([1,2,3])
ss.add() //添加元素
ss.remove() //删除元素
python语法
python中代码块是依靠缩进来区分,java中使用{}来控制
if判断语句
if True:
print("True")
else:
print("False")
if... elif...语句
if expression:
xxxx;
elif expression:
xxxx;
else:
xxxx
python的单行注释采用#开头
#第一个注释
python的多行注释采用''' 或者"""'''
这是多行注释
'''
xxx
xxxx
'''
input("请输入字符") //用于等待用户输入(python3中语法)
raw_input("请输入字符") //用于等待用户输入(python2中语法)
一行中使用多条语句时用;分割
x="aaa";print(x)
python的算术运算符
+、-、*、/、%、**(幂)、//(向下取整)
print(2**3) //8;表示2的3次方
print(10//3) //3;向下取整
python的赋值运算符 +=
-=
*=
/=
%=
**= //幂运算赋值
//= //向下取整并赋值
python的成员运算符
in //判断值在指定的序列中是否存在,存在返回true,否则false
not in //判断值在指定的序列中不存在,不存在发挥true,否则false
python身份运算符
is //判断两个标识符是否引用自一个对象(即判断两个对象是否是同一内存空间)
is not //判断两个标识符是不是引用自不同对象
a=10
b=10
if a is b:
print("有相同标识")
else:
print("没有相同标识")
python循环
lists=["a","b","c","d",""e]
for i in lists:
print(i)
for i in range(len(lists))
print(lists[i])
//for循环可以跟else连用
for i in lists:
print(i)
else:
print("循环完毕")
//for循环设置步长
for i in range(0,10,2): //range(0,10,2) 从0-10的数,且增长的步长为2
print(i)
//while循环
count=0
while count < 5:
print(count)
count+=1
else:
print("count大于5")
break,continue的用法和java用法一致
python pass是空语句,不会做任何事情
python的随机函数
choice(range(10)) //产生一个从0-9的随机数
randrange(10,20,2) //从指定的基础递增的集合中获取一个随机数
random() //产生一个[0,1)范围内的随机数
shuffle(list) //将序列的所有元素随机排序
uniform(x,y) //产生一个[x,y]范围内的随机实数
时间函数
time.time() //获取时间戳 1556003333.6916926
time.localtime() //返回浮点数的时间戳方式向时间元组转换
time.asctime( time.localtime(time.time()) ) //获取格林威志的格式化时间
time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()) //格式话日期
a="2018-10-01 12:00:00"
date = time.strptime(a,"%Y-%m-%d %H:%M:%S") //将字符串转为日期
time.mktime(date) //讲一个日期转为时间戳
time.sleep(secs) //推迟调用线程的运行,secs指秒数
函数和异常
后台启动python服务
nohup python robot.py & > ./log/log1.log
返回一个将源字符串居中,并用空格填充至长度width的新字符串