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 语句块,往下执行