python 学习笔记

Python编程风格:

python 采用缩进 相同缩进为相同为同一级别代码块(也就是缩进省略了同一代码块的括号),缩进统一四个空格。变量区分字母下划线开头,字母下划线数字组成,区分大小写
单引号和双引号没有区别
单行注释:#abc 
多行注释:'''....''' 同时 这个写法也可以打印多行 并且保留格式

Python数据类型:

数字类型,序列类型,集合类型。
数字类型:1,整型:布尔,长整型 ,标准整型。2、非整型::双精度浮点型,复数,decimal
序列类型:字符串(str),元组(tuple),列表(list),字典(dict)
集合类型:可变集合(set),不可变集合(frozenset)

Python数字运算:

+ - * / % **(乘方) = (赋值 将一个变量执行一个值)

Python导入模块:

程序中模块就像积木一样,不同的模块组加到一起组成一个程序,模块是在程序中最大的单元组织。一个Python的.py就可以相当于一个模块被其他代码使用。
import moduleName
From module import sth
import moduleName as newName
查看导入模块的搜索路径:
import sys
sys.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:%s
Age:%d
Sex:%s
Job:%s
''' % (name,age,sex,job)
结果:
what is you name:
licheng
what is you age:
21
female or male:
male
what 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=True
while 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'
break
else:
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=False
break
else:
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.'
break
else:
print 'no this user ,please register first;'
print 'thanks for useing'

需要注意的是
1、循环中每一次搜索都会使文件指针到达文件的最末端 需要将文件指针重新定位到开头才可再次进行搜索
2、同时 可以通过操作文件指针 也就是seek()函数来进行任意位置的添加内容。
3:可以将黑名单和用户信息保存在同一个文件中即可 不需要分为两个文件 可以再最后一列用true或者false来表示是否冻结
4:可做优化 将文件内容读出后保存在一个变量里面 而不是以上方法

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值