PY の 基础速记

本文内容简单介绍了 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...... 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值