1.1编程语言介绍与分类
什么是编程语言?
本质上跟人类语言目的一样,沟通。
电流+一堆硬件
高电压1 低电压0
高电压1 低电压0
高电压1 低电压0 8 晶体管
0101010101 play sound
0100101010 open file
机器语言 直接跟硬件打交道
汇编语言 开发效率低
00100010101 <-------- play_m
高级语言
对底层硬件的各种指令做了封装
play_music(“忽然.mp3”)
人类代码 ——翻译—— 机器语言
根据翻译方式不同产生了两个流派
编译型语言
人类代码 ——>一次性把代码给 翻译官(编译器)——>汇编——>机器语言
代表:c,c++,golang
优点:执行速度快
缺点:跨平台可移植性差
硬件:cpu有自己的指令规则 000001 打印,111110 play music
intel,amd:复杂指令集,高性能,高功耗
ARM:经典指令集 手机,平板,低功耗
你的基于intel平台编译出来的程序是没有办法在arm平台上运行,
软件:你的c程序,在windows,linux,mac同时可以运行
windows invoke_window
linux,mac call_window
解释型语言
人类代码——>边执行边翻译(解释),陪同翻译(解释器/虚拟机)——>机器语言
代表:python,php,java,ruby,c#
优点:跨平台好
缺点:翻译需要时间,执行速度慢
机器理解的慢,1ms 10ms
大多数情况下,语言的快慢是我们人类感知不到的
2.1 python发展史
Gudio 龟叔,1989 python
2005-2012 谷歌大量使用python 2013 dropbox
2005 豆瓣 python
2009 用python
2012 云计算 1000 = 10000 OpenStack python
2012 讲pythoon 自动化开发,不会开发的运维终将被淘汰
2014 AI兴起
2017 大众视野
java,c,python
2.2 主要应用领域
WEB开发——最火的Python web框架Django, 支持异步高并发的Tornado框架,短小精悍的flask,bottle,Django官方的标语把Django定义为the framework for perfectionist with deadlines(大意是一个为完全主义者开发的高效率web框架)
网络编程——支持高并发的Twisted网络框架,py3引入的asyncio使异步编程变的非常简单
爬虫——爬虫领域,Python几乎是霸主地位Scrapy\Request\BeautifuSoap\urllib等,想爬啥就爬啥
云计算——目前最火最知名的云计算框架就是OpenStack,Python现在的火,很大一部分就是因为云计算
人工智能——谁会成为AI 和大数据时代的第一开发语言?这本已是一个不需要争论的问题。如果说三年前,Matlab、Scala、R、Java和 Python还各有机会,局面尚且不清楚,那么三年之后,趋势已经非常明确了,特别是前两天 Facebook 开源了 PyTorch之后,Python 作为 AI 时代头牌语言的位置基本确立,未来的悬念仅仅是谁能坐稳第二把交椅。
自动化运维——问问中国的每个运维人员,运维人员必须会的语言是什么?10个人相信会给你一个相同的答案,它的名字叫Python
金融分析——我个人之前在金融行业,10年的时候,我们公司写的好多分析程序、高频交易软件就是用的Python,到目前,Python是金融分析、量化交易领域里用的最多的语言
科学运算—— 你知道么,97年开始,NASA就在大量使用Python在进行各种复杂的科学运算,随着NumPy, SciPy,Matplotlib, Enthought librarys等众多程序库的开发,使的Python越来越适合于做科学计算、绘制高质量的2D和3D图像。和科学计算领域最流行的商业软件Matlab相比,Python是一门通用的程序设计语言,比Matlab所采用的脚本语言的应用范围更广泛
游戏开发——在网络游戏开发中Python也有很多应用。相比Lua or C++,Python 比 Lua有更高阶的抽象能力,可以用更少的代码描述游戏业务逻辑,与 Lua 相比,Python 更适合作为一种 Host 语言,即程序的入口点是在
Python 那一端会比较好,然后用 C/C++ 在非常必要的时候写一些扩展。Python 非常适合编写 1万行以上的项目,而且能够很好地把网游项目的规模控制在 10 万行代码以内。另外据我所知,知名的游戏<文明> 就是用Python写的
2.3 哪些公司用python
windows
mac
linux
unix
first_python_program.py
代码如下:
print("hello world")
代码编辑器
x = 3
x + y = 6 公式调用
1.先定义 变量,存在内存里
2.代码后调用
修改
str Alex int 23
0101001 01000101
数字:
int 整数
2**63
type(age) 查看变量数据类型
long 无限大
python3里所有整数都按int类型处理
float 浮点数 ~ 小数
3.14159
其他语言里,必须在声明变量前先声明其类型
弱类型语言
字符串:
定义
name = “alex” #有引号就是字符串
“i 'm alex” ‘’ ‘’’
拼接
段落
‘’‘gfhbj
‘’’
bool 布尔
a = 3
b = 5
b > a 正确/成立 真 True
b < a 错误/不成立 假 False
if today = raining: True
print(“take unbrealla”)
else: False
print(“not take”)
列表
代码如下:
names = ["alex","egon","oldtownmaster","peiqi","blackgril"]
names
['alex', 'egon', 'oldtownmaster', 'peiqi', 'blackgril']
names[-1]
'blackgril'
增
插入
代码如下:
names.insert(4,"alex")
names
['alex', 'egon', 'oldtownmaster', 'peiqi', 'alex', 'blackgril']
追加,把元素抛入列表最后边
代码如下:
names.append("xiaoqiang")
names
['alex', 'egon', 'oldtownmaster', 'peiqi', 'alex', 'blackgril', 'xiaoqiang']
删
代码如下:
del names[-1]
names
['alex', 'egon', 'oldtownmaster', 'peiqi', 'alex', 'blackgril']
改
代码如下:
names[-1] = "黑姑娘"
names
['alex', 'egon', 'oldtownmaster', 'peiqi', 'alex', '黑姑娘']
查
代码如下:
peiqi' in names
True
#查到元素的下标并返回
names.index("peiqi")
3
dict,set
tuple
命令嵌套
代码如下:
del names[names.index("peiqi")]
names
['alex', 'egon', 'oldtownmaster', 'alex', '黑姑娘']
%s 是代表字符串
%d 整数
%f 浮点数
单分支
代码如下:
today_weather = "sum"
#单分支
if today_weather == "rainday":
print("take your umbrella with you")
双分支
代码如下:
AgeOfOldboy = 58
if AgeOfOldboy > 50 :
print("Too old, time to retire..")
else:
print("还能折腾几年!")
缩进
Python的缩进有以下几个原则:
顶级代码必须顶行写,即如果一行代码本身不依赖于任何条件,那它必须不能进行任何缩进
同一级别的代码,缩进必须一致
官方建议缩进用4个空格,当然你也可以用2个,如果你想被人笑话的话。
多分支
代码如下:
age = 15
if age < 12:
print("you are child")
elif age < 18:
print("you are teenager")
elif age < 30:
print("you are young man")
else:
print("you are oil middle-age man")
猜随机数
break #终止循环
continue #终止本次循环,继续下次循环
代码如下:
count = 0
while count < 100:
count += 1
if count > 10 and count > 20:
continue
print(count)
dead loop
Python基础语法入门