一、Python运用的领域
- 云计算: 云计算最火的语言, 典型应用OpenStack
- WEB开发: 众多优秀的WEB框架,众多大型网站均为Python开发,Youtube, Dropbox, 豆瓣。。。, 典型WEB框架有Django
- 科学运算、人工智能: 典型库NumPy, SciPy, Matplotlib, Enthought librarys,pandas
- 系统运维: 运维人员必备语言
- 金融:量化交易,金融分析,在金融工程领域,Python不但在用,且用的最多,而且重要性逐年提高。原因:作为动态语言的Python,语言结构清晰简单,库丰富,成熟稳定,科学计算和统计分析都很牛逼,生产效率远远高于c,c++,java,尤其擅长策略回测
- 图形GUI: PyQT, WxPython,TkInter
二、Python的历史
1989年,Guido(龟叔)开始写Python语言的编译器,他希望:创造一种C和shell之间,功能全面,易学易用,可拓展的语言。
1991年,第一个Python编译器诞生。它是用C语言实现的,并能够调用C语言的库文件。从一出生,Python已经具有了:类,函数,异常处理,包含表和词典在内的核心数据类型,以及模块为基础的拓展系统。
Python 2.7 - July 3, 2010(Python2.7版本支持到2020年后不在更新)。目前最新版本为3.7版本。
三、python2,python3区别大环境下:
python2:
1,源码都含有php,Java,C,等语言的规范陋习,
2,重复代码特别多.
python3:
源码很规范,清晰,简单,符合python的宗旨.
四、编程语言分类
编程语言主要从以下几个角度为进行分类,编译型和解释型、静态语言和动态语言、强类型定义语言和弱类型定义语言。
编译型:将源码一次性转化成二进制文件,然后在执行
优点:(执行速度快)编译器一般会有预编译的过程对代码进行优化。因为编译只做一次,运行时不需要编译,所以编译型语言的程序执行效率高。可以脱离语言环境独立运行。
缺点:(开发效率低,跨平台比较麻烦)编译之后如果需要修改就需要整个模块重新编译。编译的时候根据对应的运行环境生成机器码,不同的操作系统之间移植就会有问题,需要根据运行的操作系统环境编译不同的可执行文件。
代表类型:C,C++...
解释型:当程序运行时,将代码从上至下,一句一句解释成二进制,在执行.
优点:(开发速度快,可以跨平台.)有良好的平台兼容性,在任何环境中都可以运行,前提是安装了解释器(虚拟机)。灵活,修改代码的时候直接修改就可以,可以快速部署,不用停机维护。
缺点:(执行效率慢.)每次运行的时候都要解释一遍,性能上不如编译型语言。
代表类型:python,php
五、Python的种类
1,Cpython 用C语言开发的
2,Jpython JAVA
3,Ipython Cpython的增强模式
4,pypy 整篇解释,提高速度用的
六、运行Python代码
目前使用Python2.7.15版本和3.6.6版本区别。
python3:英文,中文没有问题. 默认编码:utf-8
python2:英文没问题,中文报错? 默认编码:ascii(美国标准信息交换代码,最早预留之后有2**8个,及256个符号)
显示中文解决办法:首行: # -*- encoding:utf-8 -*-
七、注释、变量和常量
7.1注释:
当行注释:# 被注释内容
多行注释:'''被注释内容''',或者"""被注释内容""" 注意:当遇到 I’m 时,就需要使用双引号
7.2变量:
变量:将运算的中间结果暂存到内存,以便后续程序调用.
变量命名规则:
1,变量是由数字,字母,下划线,任意组合.
2,变量不能以数字开头.
3,变量不能是python的关键字.
['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']
4,变量可描述性.
5,变量不能是中文.
6,变量不能过长.
变量的写法:
驼峰体:AgeOfOldboy = 56
下划线:age_of_oldboy = 56(推荐使用)
7.3常量:没有常量,但是约定俗称:全部大写的是常量.
八、基础数据类型
int 数字(主要用于计算:+-*/ ** % //......)
str 字符串(在Python中,加了引号的字符都被认为是字符串!)
1
2
3
4
5
6
7
|
m1
=
"a"
m2
=
"bc"
print
(m1
+
m2)
>>>
"abc"
>>>
>>>m1
*
10
>>>
"aaaaaaaaaa"
|
相加就是简单的拼接,就算中间有空格也会有显示,如上面“a ”拼接出来就是“a bc”;
相乘就是复制次数在拼接到一块
注:字符串的拼接只能是双方都是字符串,不能跟数字或其它类型拼接
布尔值 (true、flase)
list
tuple
dict
set
九、用户交互
Python2 raw_input
Python3 input
name = input("请输入你的名字:") age = int(input("请输入你的年龄:")) print(name,age)
print("我叫"+name,"今年"+age)
input接收的所有输入默认都是字符串格式!
type() #查看数据类型
目前可以查看int,str,bool
十、if语句
1.
if 条件:
代码块
2.
if 条件:
代码块
else:
代码块
eg: sex = input('输入性别:') if sex == '女': print('进来做一做!') #注意缩进 else: print('滚!')
3.
if 条件:
代码块
elif 条件:
代码块
elif 条件:
代码块
~~~~~~~~~~~~~~~~~等等
4.
if 条件:
代码块
elif 条件:
代码块
else:
代码块
5.
if 条件:
代码块
if 条件:
代码块
else:
代码块
else:
代码块
十一、密码无显示装逼利器
import getpass
user = input("请输入用户名:")
pwd = getpass.getpass('请输入密码:')
print(user,pwd)
十二、格式化输出
eg:
------------ info of Alex Li ----------
Name : Alex Li
Age : 22
job : Teacher
Hobbie: girl
------------- end ----------------
代码:
name = input('请输入姓名:')
age = input('请输入年龄:')
job = input('请输入工作:')
hobbie = input('请输入爱好:')
第一种方法(占位符法):
print(''' ------------ info of %s ---------- Name : %s Age : %s job : %s Hobbie: %s --------------- end ---------------- '''%(name,name,age,job,hobbie))
#要注意位置顺序,.以及相对应的数量来填充
%s代表着字符串(s必须小写)
其中%d=%i,都是代表着整型.
第二种方法(#字符串.format()法):
print(f'''------------ info of {name} ---------- Name : {name} Age : {age} job : {job} Hobbie: {hobbie} ------------- end ---------------- ''')
应用场景 : 动态获取用户数据并写入固定格式,使用+号也可以实现字符串格式化.
----------------------------------------------------------------------end--------------------------------------------------------------------------------------------
eg: name = '少年' f'你好{name}'
练习
# -*- coding: utf-8 -*- ''' age = 18 age1 = age age2 = age1 age1 = 19 print (age,age1,age2) ''' ''' name = 'alex' name1 = name name2 = name1 name = 'wusir' print (name,name1,name2) print (name + name1) print(name * 4) ''' ''' s = input("\n请输入数字:") s1 = int(s) + 5 print(s1) print(type(s)) #type()可以查询数据类型 print(type(s1)) ''' ''' import getpass user = input("请输入用户名:") pwd = getpass.getpass('请输入密码:') print(user,pwd) ''' ''' ------------ info of Alex Li ---------- Name : Alex Li Age : 22 job : Teacher Hobbie: girl ------------- end ---------------- ''' """ name = input('请输入姓名:') age = input('请输入年龄:') job = input('请输入工作:') hobbie = input('请输入爱好:') print(''' ------------ info of %s ---------- Name : %s Age : %s job : %s Hobbie: %s --------------- end ---------------- '''%(name,name,age,job,hobbie)) print(f'''------------ info of {name} ---------- #字符串.format() Name : {name} Age : {age} job : {job} Hobbie: {hobbie} ------------- end ---------------- ''') sex = input('请输入性别:') if sex == '女': print('进来做一做!') elif sex == '男' print('滚!') """ ''' 练习题: month = input('请输入一个月份:') month_int = int(month) if month_int == 1: print('早上吃面中午吃饭晚上吃肉') elif month_int == 2: print('不知道吃啥') elif month_int == 3: print('早上吃饭中午吃蛋晚上吃肉') elif month_int == 4: print('早上吃肉中午吃面晚上吃蛋') ''' ''' 作业: name = input(">>>") print(type(name)) ''' ''' print(""" 文能提笔安天下 武能上马定乾坤 心存谋略何人胜 古今英雄唯是君 """) ''' ''' num = 66 mag = input('请输入一个数字:') mag_int = int(mag) if mag_int = 66: print('对了!') elif mag_int < 66: print('小了!') else : print('') '''