本文内容简单介绍了 Python 的基础,包括 基本数据类型、条件控制、循环等等。
旨在一看便知,用于速记,所用环境为 3.6。
一、基本数据类型
1.1 int 整数
>>> number = 2
>>> type(number)
<class 'int'>
>>> number = 2 ** 1000
>>> number
10715086071862673209484250490600018105614048117055336074437503883703510511249361224931983788156958581275946729175531468251871452856923140435984577574698574803934567774824230985421074605062371141877954182153046474983581941267398767559165543946077062914571196477686542167660429831652624386837205668069376
int 是所有整数的代表,从上述代码看,在 Python 中,int 类型没有长度限制
1.2 float 浮点数
>>> number = 3.14
>>> type(number)
<class 'float'>
>>> number_A = double(number)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'double' is not defined
>>> number_B = int(number)
>>> number_B
3
>>> int(3.9999)
3
在 Python 中,并没有 double,只存在 float 代表浮点数
在把 浮点数 转换为 整数 时使用了强制转换,会直接把小数部分截断
1.3 str 字符串
strings = (
'a',
'apple',
"orange"
)
for string in strings:
print()
print(type(string), string)
输出:
<class 'str'> a
<class 'str'> apple
<class 'str'> orange
在 Python 中,没有 char 类型,单引号or双引号,代表的都是 str 字符串类型
1.4 bool 布尔
布尔值用于条件判断,其值为:True 、False。
在 Python 中,任何对象都能用来测试 bool 值,用于 if、while 或 布尔操作符
默认情况下,对象都被考虑为 True,除非它的方法中存在以下两种情况:
1)定义了 __bool__() 方法,且 return False
2) 定义了 __len__() 方法,且 return 0
下面是一些被设定为 False 的内置对象:
1)常量:None、False
2)数据类型中值为 0 :0、0.0、0j、Decimal(0)、Fraction(0,1)
3) 空的序列或集合 : ''、()、[]、{}、set()、range()
flags = [
None,
0,
123,
'',
'abc',
True,
False,
(),
(123,),
[],
[1],
set(),
{1, 2},
{},
{'name': 'Bob'}
]
for flag in flags:
print(type(flag), flag, end=' ')
if flag:
print('pass')
输出(对位置做了调整):
<class 'NoneType'> None
<class 'int'> 0
<class 'int'> 123 pass
<class 'str'>
<class 'str'> abc pass
<class 'bool'> True pass
<class 'bool'> False
<class 'tuple'> ()
<class 'tuple'> (123,) pass
<class 'list'> []
<class 'list'> [1] pass
<class 'set'> set()
<class 'set'> {1, 2} pass
<class 'dict'> {}
<class 'dict'> {'name': 'Bob'} pass
对于 bool 运算符, 有 短路运算(short-circuit operator)
在 and 判断中,and 左侧的条件判断为 False,则不会对 and 右侧的条件再进行判断
在 or 判断中,or 左侧的条件判断为 True,则不会对 or 右侧的条件再进行判断
代码实例:首先我们都知道,0不能作为除数,一旦存在即报错
>>> 5/0 > 0
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ZeroDivisionError: division by zero
然后我们把上述报错语句加入到短路中:
if False and 5/0 > 0:
pass
else:
print('and右侧判断被短路')
if True or 5/0 > 0:
print('or右侧判断被短路')
输出:
and右侧判断被短路
or右侧判断被短路
算术运算符的使用
python 的算术运算符有 +、-、*、/、%、//、**。基本的内容就不演示了,只针对一些点
1)int 与 float 之间进行算术,结果会是什么?
>>> a, b = 5, 2.5
>>> c = a + b
>>> type(c)
<class 'float'>
>>> d = a / b
>>> d
2.0
答:结果为 float,由此可以推出,只要参与算术的值有 float,结果必定是 float。
2)/ 与 // 的区别
>>> 4 / 2
2.0
>>> 5 // 2
2
>>> 5.0 // 2
2.0
答:/ 即使能够整除,结果也是 float;// 是取整的除法,但是被除数是小数的情况下,结果也会是 float
3) ** 的用法
>>> a, b = 2, 1.5
>>> a ** 3
8
>>> b ** 2
2.25
答:x ** y 表示 x 的 y 次方。那么如何进行平方根处理?使用 math 库中的 sqrt,其值为 float。
>>> from math import sqrt
>>> sqrt(9)
3.0
4) % 的用法
# 写出一个方法,将整数转换成以 2~16 为进制基数的字符串
def toStr(n, base):
convertString = '0123456789ABCDEF'
if n < base:
return convertString[n]
else:
return toStr(n // base, base) + convertString[n % base]
res = toStr(255, 16)
print(res)
上述代码用到了 递归函数,不了解的可以先看链接:廖雪峰-递归函数
二、条件控制
通过对条件判定真假,来执行不同的程序路径。
首先介绍几个运算符
比较运算符:>、>=、==、<=、<、!=
逻辑运算符:and、or、not (分别对应 与、或、非)
if 的几种形式,下面直接用代码展示:
# 单个 if
if grade >= 60:
print('成绩及格')
# if else
if grade == 100:
print('父母夸赞')
else:
print('仍需努力')
# if elif else
if grade >= 90:
print('优秀')
elif grade >= 80:
print('良好')
else:
print('再加把劲')
# 嵌套 if
if location = '深圳':
if wage < 12000:
print('你拖后腿了~')
elif wage > 20000:
print('生活美滋滋')
else:
print('还是挺爽的')
else:
print('来了都是深圳人~')
三、循环
python 中,循环功能可使用 while,for
下面演示计算 1 + 3 + 5 + 7 + 9:
num = 1
total_while = 0
total_for = 0
while num < 10:
total_while = total_while + num
num = num + 2
for i in range(1, 10, 2):
total_for = total_for + i
拓展一道经典题<FizzBuzz问题>:
打印1-100的数,当能被3整除时,打印Fizz,当能被5整除时,打印Buzz,当既能被3整除又能被5整除,打印FizzBuzz,其他数正常打印。
可以自己先尝试做一做,下面展示代码:
for n in range(1, 101):
output = ''
if n % 3 == 0: output = output + 'Fizz'
if n % 5 == 0: output = output + 'Buzz'
print(output if output else n)
Continue......