First day of python
一、编程与编程语言
编程的目的是将人类的思想按照某种能被计算机识别的表达方式传递给计算机,即通过跟计算机『沟通』,让计算机把自己的思想实现。
编程语言是程序员与计算机沟通的介质。
二、 编程语言分类
机器语言:二进制编程,直接操作硬件。
汇编语言:使用一些助记符取代二进制去编程,本质上仍是直接操作硬件。
高级语言:用人类的字符去编写程序,高度抽象,屏蔽了硬件操作。
高级语言更贴近人类语言,因而必须被翻译成计算机能读懂的二进制后才能被执行,按照翻译的方式分为:
编译型:在程序执行前,有一个单独的编译过程,将高级语言翻译成机器语言,一次编译,永久运行,如C/C++。
解释性:在程序执行中,将高级语言翻译成机器语言,即使用时才翻译,如Python/Shell。
三、 Python
Python的创始人为吉多·范罗苏姆(Guido van Rossum)。1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为ABC语言的一种继承。之所以选中Python作为程序的名字,是因为他是BBC电视剧——蒙提·派森的飞行马戏团(Monty Python's Flying Circus)的爱好者。
四、 练习
Python编写登陆接口
1. 基础需求:
- 让用户输入用户名密码
- 认证成功后显示欢迎信息
- 输错三次后退出程序
1.1 流程图
user_login1.py
#!/usr/bin/env python # -*- coding:utf-8 -*- users={ 'elisun':{'password':'123','count':0}, 'zhangsan':{'password':'456','count':0}, 'lisi':{'password':'789','count':0} } while True: username=input("Please input your name: ") if not username in users: print("%s is not exist" % username) continue if users[username]['count'] > 2: print('Try too many times,locked') continue userpass=input("Please input your password: ") if userpass==users[username]['password']: print("Login success!") break else: print("Login failed!") users[username]['count']+=1
2. 升级需求:
- 可以支持多个用户登录 (提示,通过列表存多个账户信息)
- 用户3次认证失败后,退出程序,再次启动程序尝试登录时,还是锁定状态(提示:需把用户锁定的状态存到文件里)
2.1 流程图
user_login2.py
#!/usr/bin/env python # -*- coding:utf-8 -*- #lock.txt内容:elisun|zhangsan| users={ 'elisun':{'password':'123','count':0}, 'zhangsan':{'password':'456','count':0}, 'lisi':{'password':'789','count':0} } while True: username=input("Please input your name: ") if not username in users: print("%s is not exist" % username) continue with open('lock.txt','r') as f: lock_users=f.read().split('|') if username in lock_users: print('user %s is locked' % username) break if users[username]['count'] > 2: print('Try too many times,locked') with open('lock.txt','a') as f: f.write('%s|' % username) break userpass = input("Please input your password: ") if userpass==users[username]['password']: print("Login success!") break else: print("Login failed!") users[username]['count'] += 1