Python01_初始python
Python应用领域 云计算 web开发 系统运维 金融(量化交易,金融分析)
编译型语言 源代码--->>> 目标文件---->>>链接程序(可执行文件),例如C语言。适合执行速度快,大型应用程序和数据库系统。
Python 解释型语言,边解释边执行,它的运行离不开解释器,执行效率比编译型语言效率低很多。 解释型语言更容易移植, 只要有相应的解释器,移植不是问题。
动态类型语言 是指在运行期间才会做数据类型校验。python和rubby
静态类型语言的数据类型是在编译期间检查的,也就是在编写源代码时就必须声明数据类型。
强类型语言和弱类型语言
强类型语言一旦指定数据类型,若不经过强制类型转换,类型不变。
弱类型语言,一个变量可以赋予不同数据类型
Python 优点:简单易懂 三方库非常强大 可移植性好 可扩展 可嵌入性
缺点:速度相对较慢, 代码不能加密,线程不能利用多核CPU问题(GIL全局解释器锁,是解释器用于同步线程的工具,使得任何时刻仅有一个线程在
执行,python的线程是操作系统的原生线程,在linux上为pthread,完全由操作系统调度线 程的执行。一个解释器进程内由一个主线程,多个 用
户程序的执行线程,即使在多核cpu上,由于GIL的 存在,禁止多线程的并发执行)。
Python解释器
CPython 是使用最技术的解释器
IPython是基于CPython的交互式解释器,交互方式上有所增强。
PyPy采用JIT即时编译技术,对代码动态编译,可以显著提高代码的执行速度。绝大部分Python代码可以在pypy下执行,但和CPython有一些不同。
Jython是运行在java平台上的Python解释器,把python代码编译成jav字节码执行。
2.4 2004
2.5 2006
2.6 2008
2.7 2010
3.0 2008 默认支持中文字符
第一个python程序
print("hello world!")保存为Xxx.py后缀的文件,然后python Xxx.py
在linux系统中可在源码的第一行声明环境变量
#!/usr/bin/env python 查找环境变量,推荐使用。
#!/usr/bin/python 在/usr/bin/下查找python,若查找不到便会出错。
变量名定义规则
1,由字母 数字或下划线组成,且只能以字母和下划线开始
2, 下列关键字不能作为变量名 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
规范: 见名知意 驼峰命名法
python 没有常量的概念,如果确实需要可以用全大写的变量名表示这是常量,表示它不能更改,语法上是可以更改的。
字符编码
ASCII 使用2进制表示字符,使用8位即可表示英文的字符
1980年 GB2312收录6763个汉字和682个其他字符
1995年 GBK1.0 收录了21886个符号,包含21003个汉字。它兼容GB2312
2000年 GB18030 收录27484个汉字,还收录了藏文,蒙文,维吾尔文等少数民族文字。现在的PC平台必须支持GB18030,嵌入式不做要求
汉字都是双字节字符集
unicode每个字符和符号最少用2个字节,可能更多。
utf-8是unicode的一种,但是它存ASCII字符里的字符是1个字节,欧洲字符用2个字节,东亚的字符用3个字节,中文也是3个字节。
python解释器在加载.py文件中的代码时,会对内容进行编码(默认是ASCII)
单行注释 : # 被注释内容
多行注释: '''注释内容''' """注释内容"""
'''多行字符串'''
python中单引号和双引号完全一致。
%s %d %f 分别是字符串占位符, 整型占位符,浮点占位符。%是占位符
python键盘输入默认是字符串类型。print(type(age))打印类型
#格式化输出
name = input("please input name:")
age = (input("please input age:"))
score = (input("please input score:"))
#字符串拼接1
info = '''
------info of ''' + name +'''-------
name:''' + name + '''
age:''' + age +'''
score:''' +score
print(info)
#字符串拼接2 使用格式化输出占位符 %s:字符串 %d:整型 %f: 浮点型
info2 = '''
------info2 of %s -------
name: %s
age:%s
score: %s
''' % (name, name, age, score)
print(info2)
'''字符串拼接3 使用格式化输出占位符 %s:字符串 %d:整型 %f: 浮点型
python2.X中的raw_input()和Python3.X中的input()作用一致
python2.X中的input()中的键盘输入必须使用"内容",否则认为是变量。
'''
info3 = '''
------info3 of {_name} -------
name: {_name}
age:{_age}
score: {_score}
'''.format (_name = name, _age= age, _score = score)
print(info3)
info4 = '''
------info4 of {0} -------
name: {0}
age:{1}
score: {2}
'''.format (name, age, score)
print(info4)
初识模块
python有非常强大和丰富的标准库和第三方库
所有非子级代码都需要顶格写,否则解释出错。
if 条件:代码块 ~else:
if 条件1: 代码块 ~elif 条件2 : 代码块2 ~else: 代码块3
while 循环条件: 代码块1 else: 代码块2 循环条件成立,执行代码块1,不成立则执行代码块2。此外break会推出整个循环结构。
for i in range(10):循环体
for i in range(0,10,2) :循环体 步长为2
break结束循环 continue结束本次循环开始下次循环;