系列文章目录
【跟小嘉学习Python 程序设计】第一章 开发环境搭建
【跟小嘉学习Python 程序设计】第二章 Python编程基础概念
【跟小嘉学习Python 程序设计】第三章 Python编程基础
前言
本章节讲解Python的基础内容包括了Hello World、数学运算、浮点数误差问题、类型转换、布尔类型、逻辑操作、比较操作等基础内容。
一、Hello World
虽然 Python 提供有交互式的命令模式,但是很多情况下,对于程序的编写定义在源文件之中,在Python里面所有的源文件的后缀名称必须是 *.py
的格式。
范例:hello.py
#!/usr/bin/env python3
#coding:UTF-8
print("hello world");
程序执行结果
>python hello.py
hello world
在计算机的世界里面,所有的文件都会存在相应的编码,在 现代的开发之中都会出现许多编码形式,例如 unicode、utf-8、ascII、要求你文件保存的编码与程序中定义的编码必须相同,否则会出现乱码,详细文档可以参考我的另一篇关于字符编码的博客。
本程序之中使用了 print() 函数,函数就是一个完成一个特定功能的代码组织结构。
二、数据类型介绍
在Python之中的数据类型包括整型、浮点型、复数、布尔类型、字符串、列表、元组、字典、日期等,并且全部都是引用传递数据类型。
在其他编程语言里面都会将数据类型分为基本数据类型(使用数值传递)、引用类型(引用传递)。
二、简单的概念介绍
2.1、数学运算
在Python之中支持以下几种数学运算
No | 运算符 | 描述 |
---|---|---|
1 | * | 乘法运算 |
2 | + | 加法运算 |
3 | - | 减法运算 |
4 | / | 除法运算 |
5 | // | 除法运算(求商) |
6 | % | 取模运算(求余) |
7 | ** | 幂运算 |
注:
在Python3之中,//号的用法而python2之中的除法相同;
除法运算在Python2之中,除法是采用取整的方式,即1/2=0,而在python3之中1/2=0.5,1//2=0;
float also accepts the strings “nan” and “inf” with an optional prefix “+” or “-” for Not a Number (NaN) and positive or negative infinity.
浮点数还包括两个字符串表示的
字符串 | 描述 |
---|---|
nan | 不是一个数 |
inf | 表示无穷大 |
例:
>>> type(float('nan'))
<class 'float'>
>>> type(float('inf'))
<class 'float'>
>>> type(float('a'))
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: could not convert string to float: 'a'
2.2、浮点数误差累积问题
浮点数的表示是有误差的。0.1+0.1+0.1+0.1+0.1+0.1+0.1+0.1+0.1+0.1
2.3、类型转换
内建函数 | 描述 |
---|---|
abs(x) | 求x的绝对值 |
int(x) | 把x转换为整型 |
float(x) | 把x转换为浮点型 |
complex(re, im) | 通过re(实数部分),im(虚数部分,默认为零)构造一个复数类型 |
既然提到了复数类型,负数可以通过z.real获得实数部分,z.imag获得虚数部分。
例如
z = 1 + 2j
>>> z.imag
2.0
>>> z.real
1.0
在复数的运算里面,有一个概念叫做共轭复数,通过c.conjugate()
方法,可以等到C的共轭复数。
共轭复数:对于复数z=a+bj ,称复数z’=a-bj为z的共轭复数。至于共轭复数的特性,自己参考数学相关知识点。
三、 布尔类型相关
3.1、布尔类型
在python之中布尔类型只有两个值,True和False;注这里的大写。实际上 True和 False 就是1和0,分别表示真和假。
由于它们实际上就是 0 和 1,所以它们可以参加数学运算(但不推荐)。
在Python之中以下几种情况都被认为是False:
- None和False
- 任何数值类型的0:0, 0.0, 0j, Decimal(0), Fraction(0, 1)
- 空的序列或集合:empty sequences and collections: ‘’, (), [], {}, set(), range(0)
3.2、逻辑操作
Operation | Result |
---|---|
x or y | if x is false, then y, else x |
x and y | if x is false, then x, else y |
not x | if x is false, then True, else False |
3.3、比较操作
Operation | Meaning |
---|---|
< | strictly less than |
<= | less than or equal |
> | strictly greater than |
>= | greater than or equal |
== | equal |
!= | not equal |
is | object identity |
is not | negated object identity |