Python编程风格:
python 采用缩进 相同缩进为相同为同一级别代码块(也就是缩进省略了同一代码块的括号),缩进统一四个空格。变量区分字母下划线开头,字母下划线数字组成,区分大小写
单引号和双引号没有区别
单行注释:#abc
多行注释:'''....''' 同时 这个写法也可以打印多行 并且保留格式
Python数据类型:
数字类型,序列类型,集合类型。
数字类型:1,整型:布尔,长整型 ,标准整型。2、非整型::双精度浮点型,复数,decimal
序列类型:字符串(str),元组(tuple),列表(list),字典(dict)
集合类型:可变集合(set),不可变集合(frozenset)
Python数字运算:
+ - * / % **(乘方) = (赋值 将一个变量执行一个值)
Python导入模块:
程序中模块就像积木一样,不同的模块组加到一起组成一个程序,模块是在程序中最大的单元组织。一个Python的.py就可以相当于一个模块被其他代码使用。
import moduleNameFrom module import sthimport moduleName as newName
查看导入模块的搜索路径:
import syssys.path
然后搜索路径依照顺序来搜索。
导入多个模块 各个模块名之间 使用逗号隔开
Python用户交互:
raw_input('please input what you num:')函数,用户输入函数 参数是提示信息
程序练习:询问用户姓名、年龄、性别、职位 以格式化的方式输出:
Imformation of company staff:
Name:XXX
Age:XXX
Sex:XXX
Job:XXX
#!/usr/bin/python#-*-coding:utf-8-*-'''python 练习用户交互 raw_input 以及输出格式控制输入 name age sex job'''name=raw_input('what is your name:\n')age=int(raw_input('what is your age:\n'))sex=raw_input('female or male?:\n')job=raw_input('what is your job?:\n')print ''' Personal imformation:Name:%sAge:%dSex:%sJob:%s''' % (name,age,sex,job)
结果:
what is you name:lichengwhat is you age:21female or male:malewhat is you job:student
print下引号后面的%是说将后面的变量置换到前面字符串中的占位符中 如果后面没有% print将会将引号中的%s 等占位符当做字符串来处理
注意:raw_input()函数 得到用户输入的数据之后所得到的值类型都是字符串 如果想让其是数值 需要进行显示类型转换
python 字符串处理:
''.strip()函数 去除字符串之中的空格。
''.split()函数 将字符串转换为列表 默认以空格来分割。同样可以传入一个字符串 让其以这个字符串为区分
>>>str='li cheng'>>>lists=str.split()>>>lists['li','cheng']>>>lists2=str.split('c')>>>lists2['li ','heng']
Python 流程控制:
if 语句:
if age<28:print 'you can have a holiday'elif sex=='F':print 'let me think about it'else:print 'you are too old to have this holiday'
名字不为空 for 循环控制
for i in range(3):name=raw_input('what is your name:\n').strip()if len(name)!=0:break;
上述代码如果名字为空则会再次提示输入 知道三次为空后继续向下运行
while True:name=raw_input('what is your name:\n').strip()if len(name)!=0:break;
while循环 直到输入的名字不为空
for i in range(3):name=raw_input('what is your name:\n').strip()if len(name)!=0:break;else:print 'loop is done'
for 循环后面加上一个else是在for循环正常执行结束之后就会执行else后面的语句 同样while也可以这样使用,可以使用这样的语法进行相应的收尾工作。
Python文件处理:
创建文件:
a=file('test.txt','w')a.write('lc 123')a.close()
file()函数第一个参数为文件创建的路径,第二个参数为打开文件的方式,
'r' 表示已读模式打开
'w'表示已写模式打开
'rb' 二进制读模式
'wb' 二进制写模式,
'a'模式表示追加写
'r+'以读写模式打开文件 可对文件进行读和写操作
'w+'消除文件内容 然后以读写方式打开文件
file()函数如果已经有一个同名文件,则原来的文件会被覆盖
f.tell()函数返回文件指针当前在文件中的位置
f.seek(off,whence=0)函数在文件中移动文件指针 whence=0 表示文件头 whence=1 表示当前位置 whence=2 表示文件尾 从whence开始移动off字节
练习程序:
1、输入用户名 密码 2、认证成功后显示欢迎信息 3、输入错误三次后锁定
#!/usr/bin/python#-*-coding:utf-8-*-'''python 学习练习 程序要求:输入用户名和密码认证成功后显示欢迎信息错误三次后锁定'''print 'welcome to my programming :\n'flag=Truewhile flag:username=raw_input('please input username:\n')with open('E:/python/workspace/oldguy/black.txt','r+') as f1:print f1.readlines()f1.seek(0)for line in f1.readlines():print line.split('\n')[0]if username==line.split('\n')[0]:print 'sorry ,this username is frozening for 3 times wrong password'breakelse:with open('E:/python/workspace/oldguy/userinfo.txt','r') as f2:print f2.readlines()f2.seek(0)for line in f2.readlines():#print 'userinfo',line.split()[0]#print 'username',username#print username==line.split()[0]if username==line.split()[0]:for i in range(3):password=raw_input('please input your password:\n')if password==line.split()[1]:flag=Falsebreakelse:print 'your password is wrong your have %d times left' % int(3-i)else:f1.seek(0,2)f1.write(username+'\n')print 'becauser you givewrong password so we will frozen your acount now.'breakelse:print 'no this user ,please register first;'print 'thanks for useing'
需要注意的是:
1、循环中每一次搜索都会使文件指针到达文件的最末端 需要将文件指针重新定位到开头才可再次进行搜索
2、同时 可以通过操作文件指针 也就是seek()函数来进行任意位置的添加内容。
3:可以将黑名单和用户信息保存在同一个文件中即可 不需要分为两个文件 可以再最后一列用true或者false来表示是否冻结
4:可做优化 将文件内容读出后保存在一个变量里面 而不是以上方法。
3393

被折叠的 条评论
为什么被折叠?



