day1 python简介 python2与python3 变量 判断 循环 用户登陆作业
一、python简介
1、动态类型语言
python的变量可以在运行中复制,不需要提前定义类型,比如name = ’zhangxiaodong',变量name就是字符串类型
2、强类型定义语言
python的变量类型一旦确定后,如果不通过强制转换那么它就永远是这个类型了
例子:a=‘5’ 此时a是字符串类型,如果现在 print(a+1)则会报错‘TypeError: must be str, not int’,需要通过int(a)进行转换
3、python比较有用的解释器
CPython:官方默认的解释器,用C编写,也是目前linux上默认的解释器
PyPy:对python代码进行动态编译,可以显著提高python的运行速度,绝大部分Python代码都可以在PyPy下运行,但是PyPy和CPython有一些是不同的
http://pypy.readthedocs.org/en/latest/cpython_differences.html
二、python2 与 python3区别
1、print()
python2 print ‘xxx'
python3 print()
python2.7兼容部分python3版本,比如可以使用print()函数
2、input raw_input
python2中raw_input交互输入的时候如果是字符必须要带上引号,否则就认为是变量,会出现变量没有定义的错误
input()函数输入的时候默认都是字符串,需要进行强制转换
3、字符集
python2默认ASCII,python3默认unicode,因此python3默认支持中文
三、变量
1、变量定义的规则:
- 变量名只能是 字母、数字或下划线的任意组合
- 变量名的第一个字符不能是数字
- 一般使用英语单词作为变量名,多单词组合时用下划线分割,如info_of_user用户的的信息。
- 以下关键字不能声明为变量名
['and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'exec', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'not', 'or', 'pass', 'print', 'raise', 'return', 'try', 'while', 'with', 'yield']
2、赋值
name = 'zhangxiaodong' #str
number = 5 #int
user = name
变量是直接指向内存中的一个地址,如user=name,实际是user直接指向’zhangxiaodong‘这个字符在内存中的地址。
四、判断、循环
1、if判断
_user = 'zhangxiaodong'
_password = 'adb123'
user = input('user:')
password = input('passowrd:')
if user == _user and password == _password:
print('welcome to login...')
elif user == _user:
print('password erro')
else:
print('user or password error')
2、for循环
_oldboy_age = 50
for i in range(3):
oldboy_age = int(input('age;'))
if oldboy_age == _oldboy_age:
print('yes, you got it!')
break
elif oldboy_age > _oldboy_age:
print('think bigger....')
else:
print('think smaller...')
else:
print('you have tried to many times, fuck off')
3、while循环
_oldboy_age = 50
count = 0
while count < 3:
oldboy_age = int(input('age;'))
if oldboy_age == _oldboy_age:
print('yes, you got it!')
break
elif oldboy_age > _oldboy_age:
print('think bigger....')
else:
print('think smaller...')
count += 1
if count == 3:
continue_confirm = input('do you want to keeping guess:')
print(continue_confirm)
if continue_confirm != 'n':
count = 0
else:
exit(0)
else:
print('you have tried to many times, fuck off')
作业:
1、编写登陆接口
- 输入用户名密码
- 认证成功后显示欢迎信息
- 输错三次后锁定

#!/usr/bin/env python
# -*- coding:utf-8 -*-
# Author:Glen
#将文件转换为字典
def file_to_dict(file_path, split_char):
dict_name = {}
with open(file_path, 'r') as f:
for line in f.readlines():
_username, _password = line.strip('\n').split(split_char)
dict_name[_username] = _password
return dict_name
#写入lock文件
def write_to_lock(username, password, file_path):
with open(file_path, 'a') as f:
write_str = '{username} {password}\n'.format(username=username, password=password)
f.write(write_str)
d_all_user = file_to_dict('all_user', ' ')
d_lock_user = file_to_dict('lock_user', ' ')
count = 0
while count < 3:
username = input('usernaem:')
password = input('password:')
for k in d_lock_user:
if username == k:
print('locked...')
exit(0)
for (k, v) in d_all_user.items():
if username == k and password == v:
print('login successful...')
exit(0)
print('username or password wrong...')
count += 1
else:
print('more than three times, locked...')
write_to_lock(username, password, 'lock_user')
2、多级菜单
- 三级菜单
- 可依次选择进入各子菜单
- 所需新知识点:列表、字典

#!/usr/bin/env python
# -*- coding:utf-8 -*-
# Author:Glen
country = {'中国': ['四川', '浙江']}
province = {'四川': ['巴中', '成都', '内江'], '浙江': ['宁波', '杭州']}
city = {'巴中': ['巴州区', '通江县'],
'成都': ['双流县', '锦江区'],
'内江': ['隆昌县', '威远县'],
'宁波': ['鄞州区', '象山县'],
'杭州': ['临安市', '西湖区']}
current_level = country
current_area = '中国'
# 定义打印列表函数
def print_area(level, area):
for i in level:
if i == area:
for value in level[area]:
print(value)
command = ''
is_end = False
while not is_end:
print_area(current_level, current_area)
command = input('please enter command:')
if command == 'quit':
is_end = True
elif command == 'return':
if current_level == city:
current_level = province
for (k, v) in current_level.items():
if current_area in v:
current_area = k
elif current_level == province:
current_level = country
current_area = '中国'
else:
is_end = True
elif command in current_level[current_area]:
if current_level == country:
current_area = command
current_level = province
elif current_level == province:
current_area = command
current_level = city
else:
print('level 3....')
else:
print('you enter command wrong...')
浙公网安备 33010602011771号