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...')