Skip to content

Commit 9f17736

Browse files
committed
Signed-off-by: twowater <[email protected]>
草根学 Python(二)基本数据类型和变量
1 parent 6d56b0a commit 9f17736

7 files changed

+177
-1
lines changed

README.md

+1
Original file line numberDiff line numberDiff line change
@@ -9,3 +9,4 @@
99
|:----- |:------|
1010
|Python 代码规范 | [掘金](https://juejin.im/post/593ebd7eac502e006b520a8f)[简书](http://www.jianshu.com/p/8b6c425b65a6)[CSDN](http://blog.csdn.net/Two_Water/article/details/73153945)[个人博客](http://twowater.com.cn/2017/06/13/Python%E4%BB%A3%E7%A0%81%E8%A7%84%E8%8C%83/)|
1111
|草根学Python(一)第一个Python程序|[掘金](https://juejin.im/post/594633e5ac502e006b9e1331)[简书](http://www.jianshu.com/p/0d757860c8cf)[CSDN](http://blog.csdn.net/Two_Water/article/details/73433637)[个人博客](http://twowater.com.cn/2017/06/18/%E8%8D%89%E6%A0%B9%E5%AD%A6Python-%E4%B8%80-%E7%AC%AC%E4%B8%80%E4%B8%AAPython%E7%A8%8B%E5%BA%8F/)|
12+
|草根学 Python(二)基本数据类型和变量|[掘金](https://juejin.im/post/5946b7f25c497d006bef5704)[简书](http://www.jianshu.com/p/b5388a6c2e72)[CSDN](http://blog.csdn.net/Two_Water/article/details/73478060)[个人博客](http://twowater.com.cn/2017/06/19/%E8%8D%89%E6%A0%B9%E5%AD%A6Python-%E4%BA%8C-%E5%9F%BA%E6%9C%AC%E6%95%B0%E6%8D%AE%E7%B1%BB%E5%9E%8B%E5%92%8C%E5%8F%98%E9%87%8F/)|

SUMMARY.md

+6-1
Original file line numberDiff line numberDiff line change
@@ -9,4 +9,9 @@
99
* [一、Python 简介](/python1/Introduction.md)
1010
* [二、Python 的安装](/python1/Installation.md)
1111
* [三、第一个 Python 程序](/python1/The_first_procedure.md)
12-
* [四、集成开发环境(IDE): PyCharm](/python1/IDE.md)
12+
* [四、集成开发环境(IDE): PyCharm](/python1/IDE.md)
13+
* [草根学 Python(二)基本数据类型和变量](/python2/Preface.md)
14+
* [一、Python 语法的简要说明](/python2/Grammar.md)
15+
* [二、Python 的基本数据类型](/python2/Type_of_data.md)
16+
* [三、基本数据类型转换](/python2/Type_conversion.md)
17+
* [四、Python 中的变量](/python2/Variable.md)

python2/Grammar.md

+11
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
# 一、Python 语法的简要说明 #
2+
3+
每种语言都有自己的语法,不管是自然语言还是我们的计算机编程语言,Python 也不例外,编辑器或者解析器根据符合语法的程序代码转换成 CPU 能够执行的机器码,然后执行。
4+
5+
Python 的语法比较简单,采用缩进方式。因为之前是写 JAVA 或者 C++ 偏多,突然没了大括号和要注意缩进,是有点不习惯的,不过还是可以接受的。而且要养成使用 4 个空格的缩进,可以在文本编辑器设置 Tab 自动转换为 4 个空格。
6+
7+
![Python语法.png](http://upload-images.jianshu.io/upload_images/2136918-b9b072c2587cc89e.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
8+
9+
以 # 开头的语句是注释,其他每一行都是一个语句,当语句以冒号 : 结尾时,缩进的语句视为代码块。要注意的是 Python 程序是大小写敏感的,如果写错了大小写,程序会报错。
10+
11+
更多的说明可以看看之前的文章:[Python代码规范中的简明概述](https://www.readwithu.com/codeSpecification/codeSpecification_first.html)

python2/Preface.md

+7
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
# 前言 #
2+
3+
最近要开始新的项目,工作又开始忙起来了,不过还是每天要抽时间来写博客,但不可能做到日更,因为一篇博客,写的时间还是挺长的。[Gitbook](https://www.readwithu.com/) 同时更新喔。
4+
5+
# 目录 #
6+
7+
![草根学Python(二)基本数据类型和变量](https://dn-mhke0kuv.qbox.me/a3eb54781266e147c3cc.png)

python2/Type_conversion.md

+18
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
# 三、基本数据类型转换 #
2+
3+
|方法|说明|
4+
|-----|------|
5+
|int(x [,base ]) | 将x转换为一个整数 |
6+
|long(x [,base ])| 将x转换为一个长整数 |
7+
|float(x ) | 将x转换到一个浮点数 |
8+
|complex(real [,imag ])| 创建一个复数 |
9+
|str(x ) | 将对象 x 转换为字符串 |
10+
|repr(x ) | 将对象 x 转换为表达式字符串 |
11+
|eval(str ) | 用来计算在字符串中的有效 Python 表达式,并返回一个对象 |
12+
|tuple(s ) | 将序列 s 转换为一个元组 |
13+
|list(s ) | 将序列 s 转换为一个列表 |
14+
|chr(x ) | 将一个整数转换为一个字符 |
15+
|unichr(x ) | 将一个整数转换为 Unicode 字符 |
16+
|ord(x ) | 将一个字符转换为它的整数值 |
17+
|hex(x ) | 将一个整数转换为一个十六进制字符串 |
18+
|oct(x ) | 将一个整数转换为一个八进制字符串 |

python2/Type_of_data.md

+90
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,90 @@
1+
# 二、Python 的基本数据类型 #
2+
3+
## 1、整数 ##
4+
5+
Python 可以处理任意大小的整数,当然包括负整数,在 Python 程序中,整数的表示方法和数学上的写法一模一样,例如:`1``100``-8080``0`,等等。
6+
7+
计算机由于使用二进制,所以,有时候用十六进制表示整数比较方便,十六进制用 0x 前缀和 0-9,a-f 表示,例如:0xff00,0xa5b4c3d2,等等。
8+
9+
10+
## 2、浮点数 ##
11+
12+
浮点数也就是小数,之所以称为浮点数,是因为按照科学记数法表示时,一个浮点数的小数点位置是可变的。整数和浮点数在计算机内部存储的方式是不同的,整数运算永远是精确的(除法也是精确的),而浮点数运算则可能会有四舍五入的误差。
13+
14+
## 3、字符串 ##
15+
16+
字符串是以 '' 或 "" 括起来的任意文本,比如 `'abc'``"123"` 等等。请注意,'' 或 "" 本身只是一种表示方式,不是字符串的一部分,因此,字符串 `'abc'` 只有 a,b,c 这 3 个字符。这个其他的编程语言也是类似的。
17+
18+
19+
### (1) Python 中的字符串和字符串转义 ###
20+
21+
在上面那里提到,字符串可以用 `''` 或者 `""` 括起来表示。可是有些时候,我们字符串本身就包含了 `''` 或者 `""` ,怎么办呢?
22+
23+
那这个时候就需要对字符串的某些特殊字符进行“转义”,Python 字符串用 `\` 进行转义。跟 JAVA 也是一样的。
24+
25+
常用的转义字符还有:
26+
```
27+
\n 表示换行
28+
\t 表示一个制表符
29+
\\ 表示 \ 字符本身
30+
```
31+
具体例子:
32+
33+
![Python字符串转义.png](http://upload-images.jianshu.io/upload_images/2136918-88fdd2055dd834f4.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
34+
35+
那上面就有一个问题呢,如果一个字符串包含很多需要转义的字符,对每一个字符都进行转义会很麻烦。这里为了应付这种情况,我们可以在字符串前面加个前缀 `r` ,表示这是一个 raw 字符串,里面的字符就不需要转义了。
36+
37+
![Python转义r.png](http://upload-images.jianshu.io/upload_images/2136918-8391230097f54800.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
38+
39+
但是,要注意的一点是,但是`r'...'`表示法不能表示多行字符串,也不能表示包含`'``"`的字符串。
40+
41+
如果要表示多行字符串,可以用`'''...'''`表示,当然你也还可以在多行字符串前面添加 `r` ,把这个多行字符串也变成一个raw字符串
42+
43+
44+
![多行转义.png](http://upload-images.jianshu.io/upload_images/2136918-36df87f50895af18.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
45+
46+
### (2) 字符串的编码问题 ###
47+
48+
我们都知道计算机只能处理数字,如果要处理文本,就必须先把文本转换为数字才能处理。最早的计算机在设计时采用8个比特(bit)作为一个字节(byte),所以,一个字节能表示的最大的整数就是255(二进制11111111=十进制255),0 - 255被用来表示大小写英文字母、数字和一些符号,这个编码表被称为ASCII编码,比如大写字母 A 的编码是 65,小写字母 z 的编码是 122。
49+
50+
如果要表示中文,显然一个字节是不够的,至少需要两个字节,而且还不能和 ASCII 编码冲突,所以,中国制定了 GB2312 编码,用来把中文编进去。
51+
52+
类似的,日文和韩文等其他语言也有这个问题。为了统一所有文字的编码,Unicode 应运而生。Unicode 把所有语言都统一到一套编码里,这样就不会再有乱码问题了。
53+
54+
Unicode 通常用两个字节表示一个字符,原有的英文编码从单字节变成双字节,只需要把高字节全部填为 0 就可以。
55+
56+
因为 Python 的诞生比 Unicode 标准发布的时间还要早,所以最早的Python 只支持 ASCII 编码,普通的字符串 'ABC' 在 Python 内部都是 ASCII 编码的。
57+
58+
Python 在后来添加了对 Unicode 的支持,以 Unicode 表示的字符串用`u'...'`表示。
59+
60+
不过在最新的 Python 3 版本中,字符串是以 Unicode 编码的,也就是说,Python 的字符串支持多语言。就像上面的例子一样,我的代码中没有加`u'...'`,也能正常显示。
61+
62+
不过由于 Python 源代码也是一个文本文件,所以,当你的源代码中包含中文的时候,在保存源代码时,就需要务必指定保存为 UTF-8 编码。当Python 解释器读取源代码时,为了让它按 UTF-8 编码读取,我们通常在文件开头写上这两行:
63+
64+
```python
65+
#!/usr/bin/env python3
66+
# -*- coding: utf-8 -*-
67+
```
68+
69+
第一行注释是为了告诉 Linux/OS X 系统,这是一个 Python 可执行程序,Windows 系统会忽略这个注释;
70+
71+
第二行注释是为了告诉 Python 解释器,按照 UTF-8 编码读取源代码,否则,你在源代码中写的中文输出可能会有乱码。
72+
73+
申明了 UTF-8 编码并不意味着你的 .py 文件就是 UTF-8 编码的,必须并且要确保文本编辑器正在使用 UTF-8 without BOM 编码
74+
75+
## 4、布尔值 ##
76+
77+
布尔值和布尔代数的表示完全一致,一个布尔值只有 `True``False `两种值,要么是 `True`,要么是 `False`,在 Python 中,可以直接用 True、False 表示布尔值(请注意大小写),也可以通过布尔运算计算出来。
78+
79+
布尔值可以用 `and``or``not` 运算。
80+
81+
`and` 运算是与运算,只有所有都为 True,and 运算结果才是 True。
82+
83+
`or` 运算是或运算,只要其中有一个为 True,or 运算结果就是 True。
84+
85+
`not` 运算是非运算,它是一个单目运算符,把 True 变成 False,False 变成 True。
86+
87+
88+
## 5、空值 ##
89+
90+
基本上每种编程语言都有自己的特殊值——空值,在 Python 中,用 None 来表示

python2/Variable.md

+44
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
# 四、Python 中的变量 #
2+
3+
## 1、变量的创建和赋值 ##
4+
5+
在 Python 程序中,变量是用一个变量名表示,可以是任意数据类型,变量名必须是大小写英文、数字和下划线(_)的组合,且不能用数字开头,比如:
6+
7+
```python
8+
a=88
9+
```
10+
11+
这里的 `a` 就是一个变量,代表一个整数,注意一点是 Python 是不用声明数据类型的。在 Python 中 `=` 是赋值语句,跟其他的编程语言也是一样的,因为 Python 定义变量时不需要声明数据类型,因此可以把任意的数据类型赋值给变量,且同一个变量可以反复赋值,而且可以是不同的数据类型。
12+
13+
![Python 中的变量.png](http://upload-images.jianshu.io/upload_images/2136918-69affa6da83f1dfc.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
14+
15+
这种变量本身类型不固定的语言称之为动态语言,与之对应的是静态语言。静态语言在定义变量时必须指定变量类型,如果赋值的时候类型不匹配,就会报错。例如 Java 是静态语言。
16+
17+
18+
## 2、变量的指向问题 ##
19+
20+
我们来看下这段代码,发现最后打印出来的变量 b 是 `Hello Python`
21+
22+
![Python变量指向.png](http://upload-images.jianshu.io/upload_images/2136918-052a908c25fcfc49.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
23+
24+
这主要是变量 a 一开始是指向了字符串 `Hello Python``b=a` 创建了变量 b ,变量 b 也指向了a 指向的字符串 `Hello Python`,最后 `a=123`,把 变量 a 重新指向了 `123`,所以最后输出变量 b 是 `Hello Python`
25+
26+
![变量的指向](https://dn-mhke0kuv.qbox.me/91ef196a3875cb12abeb.png)
27+
28+
## 3、多个变量赋值 ##
29+
30+
Python 允许同时为多个变量赋值。例如:
31+
32+
```python
33+
a = b = c = 1
34+
```
35+
36+
以上实例,创建一个整型对象,值为 1,三个变量被分配到相同的内存空间上。
37+
38+
当然也可以为多个对象指定多个变量。例如:
39+
40+
```python
41+
a, b, c = 1, 2, "liangdianshui"
42+
```
43+
44+
以上实例,两个整型对象 1 和 2 的分配给变量 a 和 b,字符串对象 "liangdianshui" 分配给变量 c。

0 commit comments

Comments
 (0)