1、python介绍及发展历史java
我的理解:python是门计算机语言,跟C、C++、Java等同样,为何和英语、法语同样称为语言?语言有本身的共性,就像咱们婴儿时期咿呀咿呀学说话,读书时代的拼音、单词、组词、语法、造句、写做,从简单到复杂,从词到造句到写做,这就是学语言的原理。python也是如此,尽管本人还不能一窥全貌。python
我的方法:先模仿再创造,先死记再变通,运用5W1H(when、where、who、what、why、how)去学习,多思考。数据库
博客目标:只提取有用的东西,逻辑清晰明了,语言简练实用。编程
废话少说,接下来先作python介绍:windows
where:安全
python擅长的领域:服务器
Web开发--Django/pyramid/Tornado/bottle/Flask/WebPy网络
网络编程--Twisted/Requests/Scrapy/Paramiko多线程
科学运算--SciPy/Pandas/IPython并发
GUI图形开发--wxPython/PyQT/Kivy
运维自动化--OpenStack/SaltStack/Ansible/腾讯蓝鲸(LOL)
how:
如何高效的适应业务的频繁更新、变动、上线、扩展?
如何在最低成本的前提下实现业务并发能力的可伸缩式扩展?
如何实现运维人员从被动故障处理到故障预防和故障高度自愈的转换?
若是经过不断优化运维流程、自动化工具来下降运维成本、人工参与度,最终实现无人运维?
what:
python是一门动态解释性的强类型定义语言。
从不一样角度去看编程语言的类型:编译型和解释型、动态语言和静态语言、强类型语言和弱类型语言。
1.执行角度:
编译型--一个程序对源代码进行转换,生成可执行文件(机器代码),就能够直接运行了,但大型项目多个文件时就须要所有编译完才能运行;如C、C++等
解释型--就像看书,看一句读一句,即不停的解释执行,解释执行。所以解释型比编译型执行效率要慢。
编译器是把源程序的每一条语句都编译成机器语言,并保存成二进制文件,这样运行时计算机能够直接以机器语言来运行此程序,速度很快;
解释器则是只在执行程序时,才一条一条的解释成机器语言给计算机来执行,因此运行速度是不如编译后的程序运行的快的.
应用场景:
编译型--用在像开发操做系统、大型应用程序、数据库等C、C++、Pascal等
解释型--用在网页脚本、服务器脚本及辅助开发接口,对速度要求不高、兼容性好,如java、javaScript、VB、Perl、Python等。解释型语言更容易移植,像java一次编译处处运行。
2.语言动静
动态类型语言:动态类型语言是指在运行期间才去作数据类型检查的语言,也就是说,在用动态类型的语言编程时,永远也不用给任何变量指定数据类型,该语言会在你第一次赋值给变量时,在内部将数据类型记录下来。Python和Ruby就是一种典型的动态类型语言,其余的各类脚本语言如VBScript也多少属于动态类型语言。
静态类型语言:静态类型语言与动态类型语言恰好相反,它的数据类型是在编译其间检查的,也就是说在写程序时要声明全部变量的数据类型,C/C++是静态类型语言的典型表明,其余的静态类型语言还有C#、JAVA等。
3.语言强弱
强类型定义语言:强制数据类型定义的语言。也就是说,一旦一个变量被指定了某个数据类型,若是不通过强制转换,那么它就永远是这个数据类型了。举个例子:若是你定义了一个整型变量a,那么程序根本不可能将a看成字符串类型处理。强类型定义语言是类型安全的语言。
弱类型定义语言:数据类型能够被忽略的语言。它与强类型定义语言相反, 一个变量能够赋不一样数据类型的值。
2、python特色
优势:
1.Python的定位是“优雅”、“明确”、“简单”;
2.开发效率很是高,Python有很是强大的第三方库,基本上你想经过计算机实现任何功能,避免重复造轮子;
3.高级语言:不考虑程序内存处理等底层细节;
4.可移植性:全部Python程序无需修改,就几乎能够在市场上全部的系统平台上运行;
5.可扩展性:关键代码可以使用C/C++编写,使得python程序运行更快;
6.可嵌入性:python嵌入到C/C++中,提供脚本功能;
缺点:
1.速度慢,Python 的运行速度相比C语言确实慢不少,跟JAVA相比也要慢一些,基本知足程序速度要求,除非搜索引擎等须要C编写;
2.代码不能加密,由于PYTHON是解释性语言,它的源码都是以名文形式存放的;
3.线程不能利用多CPU问题,因为GIL即全局解释器锁(Global Interpreter Lock)存在,禁止多线程并行执行;
python解释器
CPython:C语言开发,应用最普遍
IPython:CPython的加强型交互式解释器
PyPy:目标是执行速度,动态编译python代码,与CPython解释器下执行结果可能略有不一样
Jython:Java平台的解释器
IronPython:微软.Net平台上的解释器
3、安装
环境变量:
【右键计算机】
-
-
》【属性】
-
-
》【高级系统设置】
-
-
》【高级】
-
-
》【环境变量】
-
-
》【在第二个内容框中找到 变量名为Path 的一行,双击】
-
-
> 【Python安装目录追加到变值值中,用 ; 分割】
如:原来的值;C:\python27,切记前面有分号
4、hello world程序
C:\Users\HW>python
Python 3.6.0 (v3.6.0:41df79263a11, Dec 23 2016, 08:06:12) [MSC v.1900 64 bit (AM
D64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> print("Hello World!")
Hello World!
5、变量/字符编码
变量声明:
#_*_ coding:utf-8 _*_ #指定程序文件编码类型为utf-8
name = "Alex" #变量名为:name,变量name的值为:"Alex"
变量定义的规则:
字符编码历史:
ASCII:python2默认是ASCII编码,1个字节,最多2**8-1=255个字符,其中0-9为48-57,A-Z为65-90,a-z为97-122;
中文编码:
Unicode(统一码、万国码、单一码):最少2个字节,即:2 **16 = 65536
注释:
当行注视:# 被注释内容
多行注释:""" 被注释内容 """
6、用户输入函数
代码:
# !/usr/bin/env python
# _*_coding:utf-8_*_
# name = raw_input("What is your name?") #only on python 2.x
name = input("What is your name?")
print("Hello " + name)
执行结果:
What is your name?alex
Hello alex
7、.pyc是什么
当python程序运行时,编译的结果则是保存在位于内存中的PyCodeObject(Python编译器真正编译成的结果)中,当Python程序运行结束时,Python解释器则将PyCodeObject写回到pyc文件中。
当python程序第二次运行时,首先程序会在硬盘中寻找pyc文件,若是找到,则直接载入,不然就重复上面的过程。
8、数据类型初识
1.数字
int(整型):范围是32位系统为-2**31~2**31-1,64位系统为-2**63~2**63-1
long(长整型):整型范围溢出,就会变成long
float(浮点型):小数就是浮点数
complex(复数):复数由实数部分和虚数部分组成,通常形式为x+yj
2.布尔值
3.字符串
如上例,"+":表明拼接,意思是在内存中从新开辟一块新空间存储新字符串,因此推荐
字符串的格式化输出
name = "alex"
print("i am %s" % name)
结果:i am alex
注意:字符串是 %s;整数 %d;浮点数%f
4.列表
建立列表:
name_list
=
[
'alex'
,
'seven'
,
'eric'
]
或
name_list =
list
([
'alex'
,
'seven'
,
'eric'
])
基本操做:
5.元组(不可变列表)
建立元组:
ages
=
(
11
,
22
,
33
,
44
,
55
)
或
ages
=
tuple
((
11
,
22
,
33
,
44
,
55
))
6.字典(无序)
建立字典:
person
=
{
"name"
:
"mr.wu"
,
'age'
:
18
}
或
person
=
dict
({
"name"
:
"mr.wu"
,
'age'
:
18
})
经常使用操做:
9、数据运算
c = a & b
c = a | b
c = a ^ b
c = ~a
c = a << 2
c = a >> 2
10、条件判断表达式if..else..
场景1、用户登录验证
模拟登录:
1. 用户输入账号密码进行登录
2. 用户信息保存在文件内
3. 用户密码输入错误三次后锁定用户
#!/usr/bin/env python
# -*- coding:utf-8 -*-
import getpass
#用户名和密码
user = "admin"
passwd = "123456"
username = input("请输入用户名:")
#password = input("请输入密码:") #明文输入
password = getpass.getpass("请输入密码:") #密文输入
if username == user and password == passwd: #判断,若是两个都为真,则执行成功语句
print("登陆成功!")
else: #若是至少一个为假,则执行失败语句
print("登陆失败...")
11、循环表达式for和while
例子1:循环10次
for i in range(10):
print(i)
结果:
0
1
2
3
4
5
6
7
8
9
例子2:打印5及以上的循环
for i in range(10):
if i < 5:
continue
print("loop",i)
loop 5
loop 6
loop 7
loop 8
loop 9
例子3:打印小于等于5的循环
for i in range(10):
if i > 5:
break
print("loop",i)
loop 1
loop 2
loop 3
loop 4
loop 5
---------------------------------------------------
例子4:循环100次,while True为死循环
count = 0
while True:
print("你是风儿我是沙,缠缠绵绵到天涯...",count)
count +=1
if count == 100:
print("去你妈的风和沙,大家这些脱了裤子是人,穿上裤子是鬼的臭男人..")
break
例子5:循环100次,while True为死循环
#!/usr/bin/env python
# -*- coding: utf-8 -*-
my_age
=
28
count
=
0
while
count <
3
:
user_input
=
int
(
input
(
"input your guess num:"
))
if
user_input
=
=
my_age:
print
(
"Congratulations, you got it !"
)
break
elif
user_input < my_age:
print
(
"Oops,think bigger!"
)
else
:
print
(
"think smaller!"
)
count
+
=
1
#每次loop 计数器+1
else
:
print
(
"猜这么屡次都不对,你个笨蛋."
)
12、break and continue
如上例,
break:直接跳出整个循环
continue:不执行接下来的语句,进入下次loop循环
十3、做业需求
做业一:博客
做业二:编写登录接口