流程控制
pass 占位符,我们可以使用pass来临时占位,来使语句完整。
[root@salt-minion-node3 tools]# cat c.py
#!/usr/bin/env python
#coding:utf-8
name=raw_input(":")
if name == "zhangtie": 值对比,内存地址对比
print "chenggong"
else:
print "shibai"
[root@salt-minion-node3 tools]# cat c.py
#!/usr/bin/env python
#coding:utf-8
name=raw_input(":")
if name == "zhangtie":
print "1"
elif name == "tie":
print "2"
elif name == "zhang":
print "3"
else:
print "shibai"
python是靠缩进来区分代码块的,级别是靠缩进来区分的,注意不同级别的缩进
[root@salt-minion-node3 tools]# cat c.py
#!/usr/bin/env python
#coding:utf-8
import getpass
name=raw_input(":")
pwd=getpass.getpass("请输入密码:")
if name == "zhangtie" and pwd =="123":
print "1"
else:
print "shibai"
[root@salt-minion-node3 tools]#
死循环
While True:
退出break
例1:
while True: input_age=int(input("input mima:")) if input_age==19: print ("bingo") break elif input_age > 19: print ("xiao yi dian") else: print ("da yidian")
例2:
#!/usr/bin/env python #coding:utf-8 age=19 input_age=-1 while age !=input_age: input_age=int(input("input mima:")) if input_age > age: print ("da le") elif input_age < age: print ("xiao le") print ("binggo")
例3:
#!/usr/bin/env python #coding:utf-8 age=19 i=0 while i < 3: print i input_age=int(input("input mima:")) if input_age > age: print ("da le") elif input_age < age: print ("xiao le") else: print ("binngo") break i+=1
#else 表示while条件不成立时,输入的内容,在上面break非正常退出时,不执行else else: print ("too many retrys")
例4:for
age =19 for i in range(3): input_age=int(input("qing shuru nian ling:")) if input_age==age: print ("binggo") break elif input_age>age: print ("da le") else: print ("xiao le") else: print ("ni shuru de ci shu tai duo le ")
数据类型
查看数据类型 tpye(ob)
数字
整型
长整型 特别大的整数
浮点型 3.14
复数 Z=A+BJ
布尔值 True Talse
1 真 0 假
通过type查看数据的类型
>>> type(2**31)
<type 'long'>
>>> 0 == True
False
>>> 1 == True
True
字符串
用单引号,双引号,三个双引号引起来的表示字符串,
[root@salt-minion-node3 tools]# cat d.py
#!/usr/bin/env python
#coding:utf-8
'''
name = 'i am %s,age %d' % ('zhangtie',70)
print name
'''
name = "i am {0},age {1}"
newname=name.format("alex",18)
print newname
[root@salt-minion-node3 tools]#
万恶的+号,我们在使用+的时候,用的空间比较大,每一部分会开辟一块内存空间
切片
字符串是一个数组,可以将里面的内容一个一个拿出
下标,从0开始
[root@salt-minion-node3 tools]# cat d.py
#!/usr/bin/env python
#coding:utf-8
name = "alex"
print name[0]
print name[1]
print name[2]
print name[3]
[root@salt-minion-node3 tools]# python d.py
a
l
e
x
[root@salt-minion-node3 tools]#
长度
[root@salt-minion-node3 tools]# cat d.py
#!/usr/bin/env python
#coding:utf-8
name = "alex"
多少个字符
print len(name) 统计字符串总字符数
print name[-1] 最后一个字符
[root@salt-minion-node3 tools]#
[root@salt-minion-node3 tools]# python d.py
4
移除空白
去除字符串两边的空格
[root@salt-minion-node3 tools]# vim d.py
#!/usr/bin/env python
#coding:utf-8
name = " alex "
print name.strip() 去除两边的空格
print name.lstrip() 去除左边空格
print name.rstrip() 去除右边空格
分隔
>>> name = ("zhang,tie")
>>> name.split(',') 以逗号分隔
['zhang', 'tie']
集合
列表
中括号括起来的集合就是列表
切片
[root@salt-minion-node3 python]# cat f.py
#!/usr/bin/env python
#coding:utf-8
name_list = ['zhangtie','alex','eric'] #定义列表
print name_list[0] #取第一个值
print name_list[1]
print name_list[2]
print name_list[-1]
[root@salt-minion-node3 python]# python f.py
nihao
zhangtie
zhangtie
alex
eric
eric
取部分
name_list=["zhang","tie","zhangtie","jock"] print(name_list[0:2]) #取一部分值,上面取的是0和1
name_list=["zhang","tie","zhangtie","jock"] print(name_list[1:])
从1到最后一个
取出元素的索引
name = ['zhang','tie','zhangtie',8,9,'liu','xin','liuxin',9] #查看元素9,在列表中的个数 print(name.count(9)) print(name.index(9)) #查看元素9,在列表中的索引号,只能查到第一个 for n in range(name.count(9)): name[name.index(9)]=999 #将9修改成999, print(name)
name = ['zhang','tie','zhangtie',8,9,'liu','xin','liuxin',9] #查看元素9,在列表中的个数 name2 = [3,6,99] print(name.count(9)) print(name.index(9)) #查看元素9,在列表中的索引号,只能查到第一个 for n in range(name.count(9)): name[name.index(9)]=999 #将9修改成999, name.extend(name2) #合并两个列表print(name)
[root@salt-minion-node3 python]#
增加
#!/usr/bin/env python
#coding:utf-8
name_list = ['zhangtie','alex','eric']
name_list.append('seven') 增加
print name_list
修改列表后,不会在内存空间中重新分配空间
删除
#!/usr/bin/env python
#coding:utf-8
name_list = ['zhangtie','alex','eric']
del name_list[0]
print name_list
[root@salt-minion-node3 python]# python f.py
['alex', 'eric']
将列表转换成字符串
join
>>> name_list = ("zhang",'tie','alex')
>>> "_".join(name_list)
'zhang_tie_alex'
判断是否包含
>>> print name_list
('zhang', 'tie', 'alex')
>>> 'zhang' in name_list
True
>>> 'zhangtie' in name_list
False
>>>
元祖
云祖不可修改,列表可修改
创建元祖
("alex","eric") 元祖
[“alex”,”eric”] 列表
>>> name_list2=("alex","eric")
>>> print name_list2
('alex', 'eric')
总结:
#切片,索引,长度,包含,循环
字符串(str)
修改后重新开辟空间
列表(list)
修改后不重新开辟空间(内存地址不怕)
元祖(tuple)
不允许修改
字典
字典
dict,字典,键值对
每一个元素都是一个键值对,字典无序
自动去重,字典中可以嵌套字典,key值必须唯一
字典的键是独一无二的
Key—value
例1:
创建字典
name = { "zhang":"tie", "liu":"xin", 371:{"age":27, "name":"zhangtie" }, 31:{"age":28, "name":"zhangtie" } }
字典中可以嵌套列表
Name print(name[31]) #打印输出,相应的值
print(name[31]["age"]) name[31]["age"]=30 #修改内容 name[31]["qq"]=1234566 #添加内容,添加和修改其实一样,如果没有这个键就是添加,如果有就是修改 print(name[31])
del name[31] 删除
for key in name: print(key,name[key])
person = {
"name":'alex',
"age":18,
"gender":'nan'
}
#person['name']
print person.values()
print person.keys()
print person.items()
for k,v in person.items(): #效率较低
print k
print v
print "======"
运算
运算符 |
描述 |
实例 |
+ |
加,两个对象相加 |
a+b输出结果 |
- |
减,得到负数,或一个数减去另外一个数 |
a-b输出结果 |
* |
乘-两个数相乘或是放回一个被重复若干次的字符串 |
a*b |
/ |
除—x除以y |
b/a |
% |
取模,放回除法的余数 |
b%a |
** |
幂—返回x的y次幂 |
a**b |
// |
取整除—返回商的整数部分 |
9//2 返回4 |
文本的基本操作
文件里面写内容和读内容
找到文件
文件路径
打开文件
file
open
打开文件的模式有:
r,以只读的模式打开文件
w,打开文件只用于写入,会覆盖原来里面的内容
a, 打开一个文件,用于追加
w+,打开一个文件,用于读写
file (文件路径,‘w+’)
f=open("test.log","w")
f.write("zhang\n")
f.close()
清除原有内容,将新内容写入
f=open("test.log","a")
f.write("zhang\n")
f.close()
追加
f=open("test1.log","r")
'''
print(f.readlines()) #是一个列表,
for n in f.readlines(): #把列表中的内容取出来,赋值给n
print(n.strip()) #去掉换行和空白
if n.strip() == "tie":
print("chenggong")
'''
print(f.read())
f.close()
f=open("lock.txt","r")
lock_list=[]
for i in f.readlines():
lock_list.append(i.strip("\n"))
f.close()
将文本中的内容转换为列表
'''写入
f=open("002.txt",'a')
f.write("zhangtie\n")
f.close()
'''
#读取
f=open("002.txt",'r')
'''
普通的读取
n=f.read() #字符串
print(n.strip()) #去掉换行和空白,打印
i=f.readlines() #列表,但我们不能直接使用,有换行符等
'''
'''
将文本中的内容写入到列表中,
i=[] #定义列表,
for n in f.readlines(): #读取内容,f和f.readlines()都行
i.append(n.strip("\n")) #去掉换行,加入列表
print(i)
'''
#将文本中,成对的内容加入字典中
f=open("0002.txt",'r')
i={}
for n in f.readlines():
user,pwd=n.strip().split(",")
print(user,pwd)
i[user]=pwd
print(i)
f.close()