Advertisement

Python的简单介绍(一)

阅读量:

一、概述
Python是著名的“龟叔”Guido van Rossum在1989年圣诞节期间,为了打发无聊的圣诞节而编写的一个编程语言。
Python为我们提供了非常完善的基础代码库,覆盖了网络、文件、GUI、数据库、文本等大量内容,被形象地称作“内置电池(batteries included)”。用Python开发,许多功能不必从零编写,直接使用现成的即可。
龟叔给Python的定位是“优雅”、“明确”、“简单”,所以Python程序看上去总是简单易懂,初学者学Python,不但入门容易,而且将来深入下去,可以编写那些非常非常复杂的程序。
那Python适合开发哪些类型的应用呢?
首选是网络应用,包括网站、后台服务等等; - PythonWeb
其次是许多日常需要的小工具,包括系统管理员需要的脚本任务等等; - Python
另外就是把其他语言开发的程序再包装起来,方便使用。 - 胶水语言
在 爬虫 科学计算 等领域有独特优势
AI
Python的优点
简单易学
完善的语言特性
天然开源
丰富的社区支持
Python的缺点。
第一个缺点就是运行速度慢,和C程序相比非常慢,因为Python是解释型语言,你的代码在执行时会一行一行地翻译成CPU能理解的机器码,这个翻译过程非常耗时,所以很慢。而C程序是运行前直接编译成CPU能执行的机器码,所以非常快。
但是大量的应用程序不需要这么快的运行速度,因为用户根本感觉不出来。例如开发一个下载MP3的网络应用程序,C程序的运行时间需要0.001秒,而Python程序的运行时间需要0.1秒,慢了100倍,但由于网络更慢,需要等待1秒,你想,用户能感觉到1.001秒和1.1秒的区别吗?这就好比F1赛车和普通的出租车在北京三环路上行驶的道理一样,虽然F1赛车理论时速高达400公里,但由于三环路堵车的时速只有20公里,因此,作为乘客,你感觉的时速永远是20公里。
第二个缺点就是代码不能加密。如果要发布你的Python程序,实际上就是发布源代码,这一点跟C语言不同,C语言不用发布源代码,只需要把编译后的机器码(也就是你在Windows上常见的xxx.exe文件)发布出去。要从机器码反推出C代码是不可能的,所以,凡是编译型的语言,都没有这个问题,而解释型的语言,则必须把源码发布出去。

二、安装配置

安装包下载地址

http://www.python.org/download/

Python分为两个互不相容的版本

下载时请注意区分不同版本并根据需求选择相应版本进行下载

双击即可开始安装

设置环境变量

三、运行方式
shell方式:
在终端中输入python启动交互式模式,在其中以交互式方式进行操作;
shell方式调用py文件:
在Python脚本文件中编写代码(后缀为.py),直接运行./xxx.py即可;
IDE模式:
使用PyCharm或Eclipse中的PyDev插件进行开发。

四、标识符
在 Python 中, 所有标识符可以包含英文、数字以及下划线(_), 但必须避免以数字开头.
Python 中的所有标识符都是区分大小写的.
具有特殊意义的是以单下划线开头的标识符.
以单下划线开头 (_foo) 的表示不能直接访问其对应的类属性, 必须通过该类提供的接口进行访问, 无法使用 from xxx import * 的方式导入;
而双下划线开头 (__foo) 则表示类中的私有成员, 同时若前后皆为双下划线 (foo) 则指的是 Python 特殊方法专用的标识, 其中 init() 则表示该类初始化函数.

五、语言细节
1.语句
Python通常一行为一条语句 不需要分号标识
Python 可以同一行显示多条语句,方法是用分号 ;
案例:
print ‘hello’;print ‘runoob’;
也可以使用反斜杠将一行语句分为多行解释:
案例:
total = item_one +
item_two +
item_three
但是语句中[] {} () 中的内容不需要使用多行连接符。
一个标识符也不能用多行连接符隔开
2.缩进
Python 中不使用{}来标识作用范围,而是用缩进来标识,所以Python中缩进式要严格遵循结构。
3.注释
使用#作为单行注释
使用三个单引号或三个双引号作为多行注释

六、变量/常量类型
Python中的变量/常量不需要声明符 直接写即可
Python中的变量/常量不区分类型
同一个变量可以被多次赋值为不同类型的值
x=“abc”
x=123
x = y = z = 999
x,y,z=1,2,“abc”
Python中的变量通常用小写表示
Python中的常量通常用大写表示
Python中的常量并不会受到保护 如果真的改是不会报错的 所以可以认为Python中并不真正存在语言意义上的常量 而是约定通过大写的变量标明它是一个常量 后续不要修改。

七、数据类型
虽然引用没有数据类型 但是Python是有数据类型的概念的
1.字符串
字符串直接量
可以用单引号 双引号 三引号引起来作为字符串直接量
‘abc’
“abc”
‘’‘abc’’’
“”“abc”""
在声明字符串直接量时单引号和双引号没什么区别
而三引号声明的字符串中可以包含任意字符 这些字符会被直接当作字符串的内容
Python中并不存在类似java中char的字符类型 想要表示一个字符 写成一个长度为1的字符串即可
字符串操作符
+ 字符串连接

a + b
‘HelloPython’

  • 重复输出字符串

a * 2
‘HelloHello’
[] 通过索引获取字符串中字符
a[1]
‘e’
[ : ] 截取字符串中的一部分
a[1:4]
‘ell’
in 成员运算符 - 如果字符串中包含给定的字符返回 True
“H” in a
True
not in 成员运算符 - 如果字符串中不包含给定的字符返回 True
“M” not in a
True
r/R 原始字符串 - 原始字符串:所有的字符串都是直接按照字面的意思来使用,没有转义特殊或不能打印的字符。 原始字符串除在字符串的第一个引号前加上字母"r"(可以大小写)以外,与普通字符串有着几乎完全相同的语法。
print r’\n’
\n
print R’\n’
\n
% 格式字符串
格式化字符串
%c 格式化字符及其ASCII码
%s 格式化字符串
%d 格式化整数
%u 格式化无符号整型
%o 格式化无符号八进制数
%x 格式化无符号十六进制数
%X 格式化无符号十六进制数(大写)
%f 格式化浮点数字,可指定小数点后的精度
%e 用科学计数法格式化浮点数
%E 作用同%e,用科学计数法格式化浮点数
%g %f和%e的简写
%G %f 和 %E 的简写
%p 用十六进制数格式化变量的地址
案例:
print “My name is %s and weight is %d kg!” % (‘Zara’, 21)
2.布尔类型
直接量只有两个 True False
布尔类型的与或非 and or not
3.数值类型:
整型(Int) - 通常被称为是整型或整数,是正或负整数,不带小数点。
长整型(long integers) - 无限大小的整数,整数最后是一个大写或小写的L。
浮点型(floating point real values) - 浮点型由整数部分与小数部分组成,浮点型也可以使用科学计数法表示(2.5e2 = 2.5 x 102 = 250)
复数(complex numbers) - 复数由实数部分和虚数部分构成,可以用a + bj,或者complex(a,b)表示, 复数的实部a和虚部b都是浮点型。
类型转换:
!!int(x [,base ]) 将x转换为一个整数
!!long(x [,base ]) 将x转换为一个长整数
!!float(x ) 将x转换到一个浮点数
complex(real [,imag ]) 创建一个复数
!!str(x ) 将对象 x 转换为字符串
repr(x ) 将对象 x 转换为表达式字符串
!!eval(str ) 用来计算在字符串中的有效Python表达式,并返回一个对象
tuple(s ) 将序列 s 转换为一个元组
list(s ) 将序列 s 转换为一个列表
chr(x ) 将一个整数转换为一个字符
unichr(x ) 将一个整数转换为Unicode字符
ord(x ) 将一个字符转换为它的整数值
hex(x ) 将一个整数转换为一个十六进制字符串
oct(x ) 将一个整数转换为一个八进制字符串
数学函数:
abs(x) 返回数字的绝对值,如abs(-10) 返回 10
ceil(x) 返回数字的上入整数,如math.ceil(4.1) 返回 5
cmp(x, y) 如果 x < y 返回 -1, 如果 x == y 返回 0, 如果 x > y 返回 1
exp(x) 返回e的x次幂(ex),如math.exp(1) 返回2.718281828459045
fabs(x) 返回数字的绝对值,如math.fabs(-10) 返回10.0
floor(x) 返回数字的下舍整数,如math.floor(4.9)返回 4
log(x) 如math.log(math.e)返回1.0,math.log(100,10)返回2.0
log10(x) 返回以10为基数的x的对数,如math.log10(100)返回 2.0
max(x1, x2,…) 返回给定参数的最大值,参数可以为序列。
min(x1, x2,…) 返回给定参数的最小值,参数可以为序列。
modf(x) 返回x的整数部分与小数部分,两部分的数值符号与x相同,整数部分以浮点型表示。
pow(x, y) x**y 运算后的值。
round(x [,n]) 返回浮点数x的四舍五入值,如给出n值,则代表舍入到小数点后的位数。
sqrt(x) 返回数字x的平方根,数字可以为负数,返回类型为实数,如math.sqrt(4)返回 2+0j
随机数函数
choice(seq) 从序列的元素中随机挑选一个元素,比如random.choice(range(10)),从0到9中随机挑选一个整数。
randrange ([start,] stop [,step]) 从指定范围内,按指定基数递增的集合中获取一个随机数,基数缺省值为1
random() 随机生成下一个实数,它在[0,1)范围内。
seed([x]) 改变随机数生成器的种子seed。如果你不了解其原理,你不必特别去设定seed,Python会帮你选择seed。
shuffle(lst) 将序列的所有元素随机排序
uniform(x, y) 随机生成下一个实数,它在[x,y]范围内。
数学常量
pi 数学常量 pi(圆周率,一般以π来表示)
e 数学常量 e,e即自然常数(自然常数)
4.空值
None

八、运算符

复制代码
    算术运算符
    	+	加 - 两个对象相加	a + b 输出结果 30
    	-	减 - 得到负数或是一个数减去另一个数	a - b 输出结果 -10
    	*	乘 - 两个数相乘或是返回一个被重复若干次的字符串	a * b 输出结果 200
    	/	除 - x除以y	b / a 输出结果 2
    	%	取模 - 返回除法的余数	b % a 输出结果 0
    	
    	**	幂 - 返回x的y次幂	a**b 为10的20次方, 输出结果 100000000000000000000
    	//	取整除 - 返回商的整数部分	9//2 输出结果 4 , 9.0//2.0 输出结果 4.0
    比较(关系)运算符
    	==	等于 - 比较对象是否相等	(a == b) 返回 False。
    	!=	不等于 - 比较两个对象是否不相等	(a != b) 返回 true.
    	<>	不等于 - 比较两个对象是否不相等	(a <> b) 返回 true。这个运算符类似 != 。
    	>	大于 - 返回x是否大于y	(a > b) 返回 False。
    	<	小于 - 返回x是否小于y。所有比较运算符返回1表示真,返回0表示假。这分别与特殊的变量True和False等价。注意,这些变量名的大写。	(a < b) 返回 true。
    	>=	大于等于	- 返回x是否大于等于y。	(a >= b) 返回 False。
    	<=	小于等于 -	返回x是否小于等于y。	(a <= b) 返回 true。
    赋值运算符
    	=	简单的赋值运算符	c = a + b 将 a + b 的运算结果赋值为 c
    	+=	加法赋值运算符	c += a 等效于 c = c + a
    	-=	减法赋值运算符	c -= a 等效于 c = c - a
    	*=	乘法赋值运算符	c *= a 等效于 c = c * a
    	/=	除法赋值运算符	c /= a 等效于 c = c / a
    	%=	取模赋值运算符	c %= a 等效于 c = c % a
    	**=	幂赋值运算符	c **= a 等效于 c = c ** a
    	//=	取整除赋值运算符	c //= a 等效于 c = c // a
    位运算符
    	&	按位与运算符:参与运算的两个值,如果两个相应位都为1,则该位的结果为1,否则为0	(a & b) 输出结果 12 ,二进制解释: 0000 1100
    	|	按位或运算符:只要对应的二个二进位有一个为1时,结果位就为1。	(a | b) 输出结果 61 ,二进制解释: 0011 1101
    	~	按位取反运算符:对数据的每个二进制位取反,即把1变为0,把0变为1	(~a ) 输出结果 -61 ,二进制解释: 1100 0011, 在一个有符号二进制数的补码形式。
    	^	按位异或运算符:当两对应的二进位相异时,结果为1	(a ^ b) 输出结果 49 ,二进制解释: 0011 0001
    	<<	左移动运算符:运算数的各二进位全部左移若干位,由"<<"右边的数指定移动的位数,高位丢弃,低位补0。	a << 2 输出结果 240 ,二进制解释: 1111 0000
    	>>	右移动运算符:把">>"左边的运算数的各二进位全部右移若干位,">>"右边的数指定移动的位数	a >> 2 输出结果 15 ,二进制解释: 0000 1111
    逻辑运算符
    	and	x and y	布尔"与" - 如果 x 为 False,x and y 返回 False,否则它返回 y 的计算值。	(a and b) 返回 20。
    	or	x or y	布尔"或"	- 如果 x 是非 0,它返回 x 的值,否则它返回 y 的计算值。	(a or b) 返回 10。
    	not	not x	布尔"非" - 如果 x 为 True,返回 False 。如果 x 为 False,它返回 True。	not(a and b) 返回 False
    成员运算符
    	in	如果在指定的序列中找到值返回 True,否则返回 False。	x 在 y 序列中 , 如果 x 在 y 序列中返回 True。
    	not in	如果在指定的序列中没有找到值返回 True,否则返回 False。	x 不在 y 序列中 , 如果 x 不在 y 序列中返回 True。
    身份运算符
    	is	is是判断两个标识符是不是引用自一个对象	x is y, 如果 id(x) 等于 id(y) , is 返回结果 1
    	is not	is not是判断两个标识符是不是引用自不同对象	x is not y, 如果 id(x) 不等于 id(y). is not 返回结果 1
    **运算符优先级
    	**	指数 (最高优先级)
    	~ + -	按位翻转, 一元加号和减号 (最后两个的方法名为 +@ 和 -@)
    	* / % //	乘,除,取模和取整除
    	+ -	加法减法
    	>> <<	右移,左移运算符
    	&	位 'AND'
    	^ |	位运算符
    	<= < > >=	比较运算符
    	<> == !=	等于运算符
    	= %= /= //= -= += *= **=	赋值运算符
    	is is not	身份运算符
    	in not in	成员运算符
    	not or and	逻辑运算符

全部评论 (0)

还没有任何评论哟~