刚刚开始写文章没有多久,文笔不是很好,这篇文章适合和我一样的 Python 初学者,自己在写总结的时候,写下的这篇文章,便于自己以后回顾,另外希望能够帮助到更多的人
在 上一篇文章 中,简单的给大家介绍了一下 Pyhton2x 和 Python3x 的发展史,今天大家总结一下语法上的区别,Python2.7 兼容 2x 的语法和 3x 的语法
在 linux 的一些 bash 的脚本,需在开头一行指定脚本的解释程序 例如在 Shell 的脚本解释器
在 Python 中也是一样的道理,安装不同版本的 Python,会安装在不同的目录一下,所以也需要告诉 Python 解释器,用什么版本的去执行
- #!/usr/bin python
- #!/usr/bin/env python3
第一种方式告诉 Python 解释器去寻找 / usr/bin 下 python 而第二种方式从系统的 PATH 目录中查找
在 Python2x 输出语句是
- print "Hello Python";
- print "left is sort you use Python";
在 Python3 中输出语句变更为
- print("Hello Python");
- print("left is sort you use Python");
在 Python2x 中 1/2 的结果是 0
而在 Python3x 中 1/2 的结果是 0.5
这个在后续文章中在给大家介绍
Python 中单行注释以 #开头
- #这是单行注释
多行注释用三个单引号(''')或者三个双引号(""")将注释括起来。
- '''
- 这是多行注释一
- '''
- """
- 这是多行注释二
- """
Python 不像 Java,在 Java 中用大括号和分号这样明显的代码块控制符号
Java 代码
- int x = 3;
- if (x == 3) {
- System.out.println("x==3");
- } else {
- System.out.println("x!=3");
- }
但是在 Python 中一切的代码块都是通过缩进来区分,缩进的空格数是可变的,但是同一个代码块的语句必须包含相同的缩进空格数。
Python 代码
- x=3;
- if x==3 :
- print("x==3\n");
- else :
- print("x!=3\n");
输入是 Input,输出是 Output,因此,我们把输入输出统称为 Input/Output,或者简写为 IO。
用 print() 括号中加上字符串,向屏幕中输出指定字符串
- print("my name is jack");
print() 函数可以接受多个字符串,用逗号隔开
- print("my name is jack", "l love python")
现在你会输出字符串了,那么如果想从键盘输入字符串怎么办?Python 提供了 input(),可以让用户输入字符串,并存在一个变量里
- >>> name = input();
- jack
当输入完 jack 之后,字符串 jack 会存放在 name 里,用 print 可以输出 name
print(name);
但是运行程序的时候,没有任何提示告诉用户,这样显得不是很友好,所以可以在 input() 括号中加入字符串来提示用户
- >>> name = input("please tell me you name: ");
- please tell me you name: jack
在 Python 中,采用的格式化方式和 C 语言是一致的,用 % 实现,有几个 %? 占位符,后面就跟几个变量或者值,顺序要对应好。如果只有一个 %?,括号可以省略
常见的占位符
占位符 | 说明 |
---|---|
%d | 整数 |
%f | 浮点数 |
%s | 字符串 |
%x | 十六进制整数 |
- name = "jack";
- print("you name is name %s" % (name));
- language = "python"
- print("you name is name %s , i love %s" % (name,language));
在 Python 中,能够直接处理的数据类型整数、浮点数、字符串、布尔值、空值
Python 的整数没有大小限制,而某些语言的整数根据其存储长度是有大小限制的,例如 Java 对 32 位整数的范围限制在 - 2147483648-2147483647。
在 Python 中整除除法永远是精确的, 计算结果是浮点数
- num = 10 / 2;
- print(num);
还有一种除法是 //,称为地板除,两个整数的除法仍然是整数
- >>> num = 10 //2;
- >>> print(num);
还有另外一种运算符 % 余数运算,可以得到两个整数相除的余数
- >>> num = 10%3;
- >>> print(num);
Python 的浮点数也没有大小限制,但是超出一定范围就直接表示为 inf(无限大)。
运算符 /、//、% 的使用方法和整数一样,这里不在举例子,有兴趣的可以去试一下
字符串是以单引号'或双引号" 括起来的任意文本,比如'abc',"xyz" 等等 如果字符串内部既包含'又包含" 怎么办?可以用转义字符 \ 来标识,比如
- print('he\'s so cool');
如果字符串里面有很多字符都需要转义, Python 还允许用 r''表示''内部的字符串默认不转义
- num = r 'I\'m jack ,she\'s beautiful, i Love her';
- print(num);
如果字符串内部有很多换行,用 \ n 写在一行里不好阅读,为了简化,Python 允许用'''...'''的格式表示多行内容
- print('''
- I am jack
- she is beautiful
- i love her
- ''')
这里只做简单的介绍,后续会详细介绍字符串
用 True 和 False 标示布尔值,可以进行 and、or 和 not 运算。 注意:True 和 False,首字母是大写
- bool = True and True;
- print(bool);
- bool = True or False;
- print(bool);
- bool = False or True;
- print(bool);
空值是 Python 里一个特殊的值,用 None 表示
在 Python 中变量不仅可以是数字,还可以是任意数据类型,这种变量本身类型不固定的语言称之为动态语言
在 Java 中定义变量时必须指定变量类型,如果赋值的时候类型不匹配,就会报错,这种变量本身类型固定的语言称之为静态语言
下面是 java 代码,运行会报错
- int age = 20;
- age = "jack";
下面是 Python 的代码
- age = 20;
- age = "jack";
对比一下就知道了,静态语言比动态语言更灵活
下面重点来了,变量在内存中引用的问题,例如下面的代码输出结果是什么呢
- x = "Python";
- y = x;
- x = "Java";
- print(y)
上面代码的输出结果是 long,为什么会这样呢?我们来一行一行代码分析一下,到底发生了什么事
执行 x= "Python",创建了字符串'Python'和变量 x,并把 x 指向'Python'
执行 y= x,创建了变量 y,并把 y 指向 x 指向的字符串'Python'
执行 x = "Java",创建了字符串'Java',并把 x 的指向改为'Java',但 y 并没有更改
来源: https://juejin.im/post/5a424bb26fb9a0452b497dfd