Python的初次接触
一、python简介
1.1、python的产生
Python的创始人为Guido van Rossum。1989年圣诞节期间,在阿姆斯特丹,Guido为了打发圣诞节的无趣,决心开发一个新的脚本解释程序,做为ABC 语言的一种继承。之所以选中Python(大蟒蛇的意思)作为该编程语言的名字,是因为他是一个叫Monty Python的喜剧团体的爱好者。ABC是由Guido参加设计的一种教学语言。就Guido本人看来,ABC 这种语言非常优美和强大,是专门为非专业程序员设计的。但是ABC语言并没有成功,究其原因,Guido 认为是其非开放造成的。Guido 决心在Python 中避免这一错误。同时,他还想实现在ABC 中闪现过但未曾实现的东西。就这样,Python在Guido手中诞生了。可以说,Python是从ABC发展起来,主要受到了Modula-3(另一种相当优美且强大的语言,为小型团体所设计的)的影响。并且结合了Unix shell和C的习惯。
Python 已经成为最受欢迎的程序设计语言之一。2011年1月,它被TIOBE编程语言排行榜评为2010年度语言。自从2004年以后,python的使用率呈线性增长。
1.2、python的类型
1.3、python的优缺点
优点:
缺点:
1.4、版本之间的差异
| 版本 | python2.x | python3.x |
| 编码类型 | ASCII | utf-8 |
|
print""或者print()打印都可以正常输出 print x, 末尾加逗号进行不换行 |
只能print()这种形式打印,否则会出现SyntaxError类型错误 print(x,end=' ')使用空格来进行不换行 |
|
| input |
input:输出原生的数据类型,输出什么类型的值,就输出什么类型 raw_input:全部以字符串形式输出 |
3.x版本取消了raw_input方法,只能使用input方式提示输入字符串,该方法和2.x版本的raw_input()相同 如果想要实现与2.x input()输出原生数据类型值,可以使用eval(input()) |
| 不等于 | <> != | 去除<>只使用!= |
| 除法 |
/ 除法根据除法中的数据类型得出结果类型,整型得出整型,带小数点就为真除 // 整除,结果取整 % 取余, |
/ 真除,得出真正结果 // 整除,结果取整 % 取余, |
| 类 |
支持新式类和经典类,使用新式类时,类继承顺序会影响最终继承的结果 |
必须使用新式类,解决了类之间继承顺序的问题 |
|
改变了顺序操作符的行为 |
x<y,当x和y类型不匹配返回随即的 bool值 |
x<y,当x和y类型不匹配时抛出TypeError |
注解:还有很多的改变,我这里只是列举一下常用的,如有需要,请联系修改。
二、python数据类型
| 类型 | 例子 |
| int 符号整型 |
如:1,12,13,-1...... , 在2.x版本中范围在-2**31~2**31-1之间, 取值决定于操作系统,不会下于这个范围 |
| float浮点型 | 有小数点的,如;1.1 1.2 -1.2...... |
| str字符串 |
如:“hello world”,"python","1".....,注意,字符串需要用引号,单双引号都可以(“hello world”) 如果不用引号引起来,python就不能把这个值识别为字符串而是识别为一个变量值 |
| bool布尔类型 | 只有两个值,真:True 假:False ,任何非零的数据类型,结果都为真,当结果为int 0时,则为假 |
| long | 这个类型只存在2.x版本中,取值范围无限大,取决于可用的虚拟内存 |
| complex 复数 | 如:3.34j, 3.453e-7j...... |
| 元组tuple | 如: (“a”,"hell", "python", "2")元组中值是不可以改变的 |
| 列表list | 如:["a","hello", "python", "2"]列表中的值是可以改变的 |
| 字典dict | 如:{“name”:"LaiYing","age":25,"job“:”IT"}字典中的值也是可以改变的 |
三、python基本语法
算术运算
以下例子 a=10 b=20
| 运算符 | 描述 | 示例 |
| + | 加法运算 | a+b得30 |
| - | 减法运算 | a-b得-10 |
| * | 乘法运算 | a*b得200 |
| / | 除法运算 | b/a得2 |
| % |
取模,将%号左边的值除以%号右边的值并且 将得到结果的余数返回 |
10%5得0,10%3得1 20%得6 |
| ** | 幂,返回x的y次幂,就是返回多少次方 | 2**8得256 |
| // | 取整除,返回x除以y的商的整数部分 | 9//2得4,9.0//2.0得4.0 |
比较运算
以下例子a=10 b=20
| 运算符 | 描述 | 示例 |
| == | 判断两个对象是否相等 | (a==b)is not true |
| != | 判断两个对象是否不相等 | (a != b)is true |
| <> 在3.x版本中已取消 | 判断两个对象是否不相等 | (a<>b)is true与!=运算符一样 |
| > | 大于,返回a是否大于b | (a>b)is not true |
| < | 小于,返回a是否小于b | (a<b)is true |
| >= | 大于等于,返回a是否大于等于b | (a>=b)is not true |
| <= | 小于等于,返回a是否小于等于b | (a<=b)is true |
赋值运算
以下例子 a=10 b=20
| 运算符 | 描述 | 示例 |
| = | 赋值,将右边的值赋值给左边的变量名 |
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 |
按位运算(二进制运算)
| 二进制位数 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 |
| 每位所代表的数字 | 128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 |
| 60 | 0 | 0 | 1 | 1 | 1 | 1 | 0 | 0 |
| 13 | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 1 |
好了,我们刚刚知道了10进制如何转2进制了,接下来我们看看如何进行2个10进制数字的位运算
| 运算符 | 描述 | 示例 |
| & |
与运算,这个二进制为必须都在2组数中都为真 结果才返回为真 |
(a & b)得12,二进制位; 0000 1100 |
| | | 或运算,这个二进制位只需要在其中一组数据中为真即返回真 |
(a | b)得61,二进制位; 0011 1101 |
| ^ | 异或运算,只有这个二进制位在两组数据中不相同就返回真 |
( a ^ b )得49,二进制位; 0011 0001 |
| << | 左移运算,将a整体向左移2位 |
a << 2得240,二进制位; 1111 0000 |
| >> | 右移运算,将a整体向左移3位 |
a >> 3得7,二进制位; 0000 0111
|
我们来看看下面的运算过程
| 二进制位 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 结果 |
| 每位所代表的数字 | 128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 | |
| 60 | 0 | 0 | 1 | 1 | 1 | 1 | 0 | 0 | |
| 13 | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 1 | |
| &与运算 | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 0 | 12 |
| |或运算 | 0 | 0 | 1 | 1 | 1 | 1 | 0 | 1 | 61 |
| ^异或运算 | 0 | 0 | 1 | 1 | 0 | 0 | 0 | 1 | 49 |
| a<<2 | 1 | 1 | 1 | 1 | 0 | 0 | 0 | 0 | 240 |
| a >>3 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 1 | 7 |
逻辑运算符
| 运算符 | 描述 | 示例 |
| and | 且,必须左右两个条件都为真,假如一个为假就为假 | 1 and 0 ,1为真,0为假,其结果为假 |
| or | 或,只要一个为真就为真,否则就为假 |
1 or 0,, 1 为真就为真,只要有一个条件为真就不 继续判断后面的条件了 |
| not | 非,取反 | |
内容参考网络上资料,如有侵权请联系修改。

浙公网安备 33010602011771号