Python 基础(一)

一、print 功能

1、打印字符串要加单引号或者双引号

print('Hello world') # 打印 Hello world
print("Hello world 2") # 打印 Hello world 2

2、字符串叠加

可以使用 + 将两个字符串链接起来

print("Hello world" + '!') # 打印 Hello world!

3、简单运算

可以直接 print 加法 + 、减法 - 、乘法 * 、除法 / 。注意:字符串不可以直接和数字相加,否则会出现错误

print(1 + 2) # 3
print(2 - 1) # 1
print(2 * 3) # 6
print(8 / 4) # 2
print('test' + 4) # 字符串不可以直接和数字相加

4、int() 和 float() 。注意:当 int() 一个浮点数时,会保留整数部分,而不是四舍五入

print(int('2') + 4) # 6
print(int(1.8)) # 1
print(float(1.3) + 4) # 5.3

二、基础数学运算

加法 + 、减法 - 、乘法 * 、除法 / 、取余 % 、幂 **

1 + 2 # 3
2 - 1 # 1
2 * 3 # 6
8 / 4 # 2
10 % 3 # 1
2 ** 3 # 8

三、变量

count = 1
name = "banana"
fruit_color = "yellow" # 需要多个单词来表示自变量时,用下划线隔开
v1, v2, v3 = 10, 5, 7 # 一次定义 多个自变量

四、while 循环

while 语句和其他编程语言中的 while 的使用方式大同小异,主要结构如下

while condition:
    expressions

其中,condition 为判断条件,在 python 中就是 True 和 False 其中的一个,如果为 True,则执行 expressions 语句,否则将跳出 while 语句块,接着往下执行

condition = 0
while condition    < 10:
    print(condition)
    condition = condition + 1

1、 常规比较操作

小于 < 、大于 > 、不大于 <= 、不小于 >= 、等于 == 、不等于 !=

2、数字

整数和浮点数也能进行 Boolean 数据操作,如果该值等于 0 或者 0.0,将会返回False,其余的返回 True

3、None 类型

如果 while 后面接着的语句数据类型为 None,将会返回 False

4、集合类型

在 python 中集合类型有 list、tuple、dict 和 set 等,将集合对象作为 while 判断语句,如果集合中的元素数量为 0,那么将会返回 False, 否则返回 True

# 打印 9 8 7 6 5 4 3 2 1 0
a = range(10)
while a:
    print(a[-1])
    a = a[:len(a)-1] # 使用切片操作去掉最后一个元素

 五、for 循环

for 循环的基本使用方法如下

for item in sequence:
    expressions

sequence 为可迭代的对象,item 为序列中的每个对象

1、常规操作

# 打印 1 2 3 4 5 6 7 12 543 876 12 3 2 5
example_list = [1, 2, 3, 4, 5, 6, 7, 12, 543, 876, 12, 3, 2, 5]
for i in example_list:
    print(i)

2、range 使用

在 python 中内置了工厂函数,range 函数将会返回一个序列,总共有三种使用方法

1) range(start, stop)  其中 start 为序列的起始值,stop 为结束值,但是不包括该值,类似数学中的表达[start, stop),左边为闭区间,右边为开区间

2) range(stop)  如果省略了 start,那么将从 0 开始,相当于 range(0, stop)

3) range(start, stop, step)  step 代表步长,即相隔的两个值的差值。从 start 开始,依次增加 step 的值,直到等于或者大于 stop

# 打印 1 - 9
for i in range(1, 10):
    print(i)

# 打印 0 - 9
for i in range(0, 10):
    print(i)

# 打印 0 5 10
for i in range(0, 13, 5):
    print(i)

2、内置集合

python 共内置了 list、tuple、dict 和 set 四种基本集合,每个集合对象都能够迭代

1) tuple 类型

# 打印 python, 2.7, 64
tup = ('python', 2.7, 64)
for i in tup:
    print(i)

2) dictionary 类型

dic = {}
dic['lan'] = 'python'
dic['version'] = 2.7
dic['platform'] = 64
for key in dic:
    print(key, dic[key])

注意:字典中 key 是乱序的,和插入顺序不一致,如果想要使用顺序一致的字典,可以使用 collections 模块中的 OrderedDict 对象

3) set 类型

# 打印 python python2 python3
s = set(['python', 'python2', 'python3','python'])
for item in s:
    print(item)

注意:set 集合将会去除重复项,输出的结果也不是按照输入的顺序

4) 迭代器

python 中的 for 语法实际上实现了设计模式中的迭代器模式,所以我们自己也可以按照迭代器的要求,自己生成迭代器对象,以便在 for 语句中使用。只要类中实现了 __iter__ 和 next 函数,那么对象就可以在 for 语句中使用

# define a Fib class
class Fib(object):
    def __init__(self, max):
        self.max = max
        self.n, self.a, self.b = 0, 0, 1

    def __iter__(self):
        return self

    # python 2.0 需要改成 def next(self):
    def __next__(self):
        if self.n < self.max:
            r = self.b
            self.a, self.b = self.b, self.a + self.b
            self.n = self.n + 1
            return r
        raise StopIteration()

# 打印 1 1 2 3 5
# using Fib object
for i in Fib(5):
    print(i)

5) 生成器

除了使用迭代器以外,python 使用 yield 关键字也能实现类似迭代的效果,yield 语句每次执行时,立即返回结果给上层调用者,而当前的状态仍然保留,以便迭代器下一次循环调用。这样做的好处是在于节约硬件资源,在需要的时候才会执行,并且每次只执行一次

def fib(max):
    a, b = 0, 1
    while max:
        r = b
        a, b = b, a+b
        max -= 1
        yield r

# 打印 1 1 2 3 5
# using generator
for i in fib(5):
    print(i)

六、判断语句

if condition:
    expressions

如果 condition 的值为 True,将会执行 expressions 语句的内容,否则将跳过该语句往下执行

if condition:
    true_expressions
else:
    false_expressions

当 if 判断条件为 True,执行 true_expressions 语句;如果为 False,将执行 else 内部的 false_expressions

if condition1:
    true1_expressions
elif condition2:
    true2_expressions
elif condtion3:
    true3_expressions
elif ...
    ...
else:
    else_expressions

如果有多个判断条件,可以通过 elif 语句添加多个判断条件,一旦某个条件为 True,那么将执行对应的 expressions,并在其代码执行完毕后跳出该 if-elif-else 语句块,往下执行

 

posted @ 2020-04-29 15:39  zero_to_infinity  阅读(316)  评论(0编辑  收藏  举报