python之路-DAY2
1.python数据结构,数据类型,扩展
2.上节作业流程
#解释器
#编码
#登陆,三次登陆失败,锁定账户
#文件保存用户信息
用户名|密码|登陆次数
用户名|密码|登陆次数
读取内容,r:文件内容读进内存,read(),readlines ---并处理内容,将内容处理成可比较的数据类型
转化成字典
{
‘用户名’:{'pwd':'密码',‘登陆次数’:1},
‘用户名’:{'pwd':'密码',‘登陆次数’:1},
‘用户名’:{'pwd':'密码',‘登陆次数’:1},
}
flag = True
counter = 0
while flag:
#三次失败后,flag = False
conunter += 1
if counter >2:
break
#用户名密码比较
去出所有用户名 和输入的用户名比较 。.keys() , raw_input(), in 判断是否在keys列表
raw_input 取到了用户名
#用户不存在
直接出去
#密码比较 big_dict[用户名]
如果密码匹配,成功
否则,登陆次数+1,continue
#如果次数+1,
#把字典处理成大字符串
打开文件,写入
入门拾遗
1,作用域
变量 只要内存里存在,就可以使用 (栈)
三元运算
#用户 输入内容,如果用户输入alex
#用户输入,得到值
#运算,的结果:如果如果
result
=
值
1
if
条件
else
值
2
二进制运算
python 基础
1.pycharm 的使用
提示,断点调试,debug 模式
2.面向对象
对于python 一切事物都是对象,对象由类创建
图一
图一是如果不使用面向对象,则每个对象都需要创建相同的功能
面向对象则可以只在类里创建,对象只调用,对象中有类指针
通过 type 可以看对象的类型
type(对象)
查看类的方法
help(list) 查看list的方法
dir(list) 查看list方法
查看某个方法的命令
help(类型名.功能名)
类中方法,有带__下划线(内置方法),不带的 非内置方法
内置方法
可能有多种执行方式,至少一种
非内置方法
count 只有一种执行方式,只能通过list.count()发放
整数:
----
创建方法
i = 10
i = int(10)
--------
abs, 数学运算符(+ , - ,*, /)
cmp
divmod 用于网页分页显示
切片是因为有index方法
repr str 方法需要知道
str 的编码解码过程
encode 是编码
def expandtabs(self, tabsize=None): """ 将tab转换成空格,默认一个tab转换成8个空格 """
字符串内容格式化,两种方式
>>> name = 'I am {0},age {1}' #按位置的占位符进行占位
>>> name.formate('xiaobing',27)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'str' object has no attribute 'formate'
>>> name.format('xiaobing',27)
'I am xiaobing,age 27'
>>> name = 'i m {ss},age {dd}' #用变量名占位
>>> name.format(dd = 27,ss = 'xiaobing')
'i m xiaobing,age 27'
>>>
li = [11,222]
name = 'i m {0}, age {1}'
name.format(*li) #列表或元组格式化必须加一个*
dic = {'ss': 123,'dd': 456}
name = " i m {ss},age {dd}"
name.format(**dic) #字典格式化必须加两个*
对比
str.find 找不到会报 -1
str.index 找不到会报错误
def ljust(self, width, fillchar=None): """ 内容左对齐,右侧填充 """"""