Python学习 第一周
Python是怎样一门语言?
Python是一种面向对象的解释性的计算机程序设计语言,是一种动态解释性的强类型定义语言。
Python解释器
编写代码时,我们会得到一个以.py为扩展名的文件,要运行代码,就需要Python 解释器去执行.py文件。整个Python语言从规范到解释器都是开源的。
- CPython :官方的解释器。是用C语言开发的。
- IPython :IPython在交互方式上有所加强。
- PyPy:采用JIT技术,为Python代码进行动态编译,可显著提高Python代码执行速度。
- Jython:运行在Java平台上的Python解释器,可直接把Python代码编译成Java字节码执行。
- IronPython和Jython类似,只不过IronPython是运行在微软Net平台上的Python解释器,可直接将Python代码编译成Net字节码。
Python发展史
- 1989年,Guido 开始写Python解释器。
- 1991年,第一个Python解释器诞生,它是用C语言实现的,并能够调用C语言的库文件。
- 1999年,才有了第一个Web框架——Zope
- 2004年,Django诞生
Python在一些知名公司的应用
- 谷歌:Google APP Engine、code.google.com、Google earth、谷歌爬虫、Google广告等项目都在大量使用Python开发。
- CIA:美国中情局网站用Python开发
- NASA:美国航天局大量使用Python进行数据分析与运算
- YouTube:世界上最大的视频网站YouTube就是用Python开发的
- Dropbox:美国最大的云存储网站,全部Python实现
- Instagram:美国最大的图片分享社交网站,全部用Python开发
- Facebook:大量的基础库均通过Python实现的
- RedHat:世界上最流行的Linux发行版本中的yum包管理工具就是用Python开发的
除上面之外,还有豆瓣、知乎、春雨医生等都在使用Python完成各种各样的业务。
Python擅长的领域
- WEB开发:
- 网络编程:
- 科学运算:
- GUI图形开发:
- 运维自动化:
Python与运维
… …
目前Python的主要应用领域
- 云计算:典型应用OpenStack
- WEB开发:众多优秀的WEB框架,众多大型网站均为WEB开发
- 科学计算、人工智能:典型库SaPy、NumPy等
- 系统运维:
- 金融:
- 图形GUI:
Python的优缺点
优点:
-
定位:“优雅”、“明确”、“简单”
-
开发效率高,拥有非常强大的第三方库
-
高级语言
-
可移植性
-
可扩展性
-
可嵌入性
缺点:
- 速度慢
- 代码不能加密
- 线程不能利用多CPU、GIL
拓展:
编译型和解释型语言
动态语言和静态语言
强类型定义语言和弱类型定义语言
正文:
- 字符编码
‘’主观’’发展史
- 变量
命名/使用
- 注释
当行注释:#
多行注释:‘’‘ ’‘’
- 用户输入输出
Input/print
- 条件语句
If …else…
- 循环语句
for/while
- 变量
命名/使用
- 注释
当行注释:#
多行注释:‘’‘ ’‘’
- 用户输入输出
Input/print
- 条件语句
If …else…
- 循环语句
for/while
- 作业:
编写登录接口
i 输入用户名密码
ii 认证成功后显示欢迎信息
iii 输错三次后锁定
流程图:
源程序:(待完善)
# Author:yin
# -*- coding:utf-8 -*-
S = True
while True:
#用While循环判断输入的用户名是否被锁定,若锁定,则...;否则跳出循环,继续向下执行。
while S:
num_0 = 0
num_1 = 0
num_2 = 0
# num_3 = 0
username = input("username:")
with open('locked.txt') as file_object:
for line in file_object:
line = line.strip()
Str1 = line.split("~")
if Str1[0] == username:
num_0 += 1
if num_0 > 0:
print("Your ID has been locked !")
msg_y_n = input ("Do you want try by another ID ? y or n?:")
if msg_y_n != "y":
exit()
else:
S = False
pwd = input("password:")
#判断账号密码是否正确
filename = 'login.txt'
with open(filename) as file_object:
lines = file_object.readlines()
for line in lines:
line = line.strip()
Str = line.split("~")
if Str[0] == username and Str[1] == pwd:
num_1 += 1
if num_1 > 0:
print("welcome: {_username}".format(_username=username))
break
#提示信息,错误三次锁定用户并将用户名存入'locked.txt'文件中
else:
print("invalid username or password")
num_2 += 1
if num_2 == 3:
print("Your ID has been locked")
filename_1 = 'locked.txt'
with open(filename_1, 'a') as file_object:
file_object.write(username + "\n")
msg_y_n = input("Do you want try by another ID ? y or n?:")
if msg_y_n != "y":
exit()
S = True
#待修改(被我舍弃的...想法很美好,但能力有限)
'''
print("invalid username or password")
filename_1 = 'locked.txt'
with open(filename_1, 'r+') as file_object:
for line in file_object:
line = line.strip()
Str0 = line.split("~")
if Str[0] == username:
num_3 += 1
num_2 = int(Str[1])
num_2 += 1
if num_2 == 3:
print("Your ID has been locked")
Str[1] = str[num_2]
file_object.write(Str[0] + "~" + Str[1] + '\n')
if num_3 == 0:
file_object.write(username + "~" + '1'+'\n')
'''