0. 说明
Python 基础笔记,使用的版本为 Python 3.6.2
Python 的变量、字符串操作、list、元组、字典、循环、range、类型转换、运算等操作。
1. 引号的使用
字符串使用单、双引号输出,'''或"""三引号也可以,后者通常用于多行文档原生输出。
# 双引号 print("hello world") # 单引号 print('hello world') # (2.x ,号结尾不换行打印)(3.x end=""结尾不换行打印) print("hello world" , end="")
2. Python 脚本中文乱码的解决之道
在 Python 脚本头部添加 UTF-8 字符集声明
#-*- coding:utf-8 -*-
Linux 下的脚本需要在头部添加解释器如下,使用 which is python 查看 Python 的位置。
#!/usr/bin/python
3. 变量
Python 变量不用声明,开袋即食。
# 无需定义变量 x = 10 print(x)
4. 代码块
Python 的代码块以缩进四个字符表示
# 缩进作为代码段 if True: print(1) print(2) else: print(0)
5. 手动换行
手动换行为
# 相当于 1+2+3 x = 1 + 2 + 3 print(x)
6. 注释
单行注释 & 多行注释
# 单行注释 """ 多行注释 多行注释 """
7. 字符串操作
s = "hello world" # 输出指定位置的字符 print(s[0]) # ll,前包后不包 print(s[2:4]) # llo world print(s[2:]) # hell print(s[:4]) # hello worl print(s[:-1]) # hello world print(s[:]) #重复几遍操作 hello worldhello world print(s * 2) # 滤除两边的空格,等价于trim print(" hello world ".strip(" ")) # 滤除左边的指定字符 print(" hello world ".lstrip(" ")) # 滤除右边的字符 print(" hello world ".rstrip(" ;")) # 字符串转换函数 print(str(100))
7. 格式化操作
# 字符串格式化操作 info = "name is %s and age is %d"%("tom" , 12) print(info) # 如果变量多次出现,可以使用format方式 info = "name is {x} , welcome for {x}".format(x="tom") print(info)
8. 变量定义
# 变量必须初始化 a= 100 # 错误,没有赋值 b # 同时定义多个变量并赋值 a , b , c = 1 , 2 ,3
9. 数据类型
# int a = 100 # float a = 100.0 # python3 没有长整形 # 复数 a = 1 + 1j a = 0 + 1j print(pow(a, 2)) print(a * a) # 字符串 a = "hello world" print(a)
10. List
List表示列表或数组,可以重复,有序,等同于 Java 中的 List 集合,List 内容可以修改。
# []是列表 l = [1,2,3] print(l) print(l[0]) print(l[1:]) print(l[:-1]) print(l[-2:]) # 追加元素 l.append(4) print(l) # 判断是否包含指定元素 print(l.__contains__(5)) # 重复操作 print(l * 2) # 修改元素 l[0] = 100 print(l)
in 操作
""" in 操作表示在集合中是否存在 """ list = [1, 2, 3] print(2 in list)
11. 循环
""" 循环,end="" 不换行打印 """ list = [1, 2, 3, 4, 5, 6] for e in list: print(e, end="") """ for 循环实现 99 乘法表格 """ rows = [1, 2, 3, 4, 5, 6, 7, 8, 9] cols = [1, 2, 3, 4, 5, 6, 7, 8, 9] for r in rows: for c in cols: if c <= r: print("%d x %d = %d " % (c, r, (c * r)), end="") print() """ while 循环实现 99 乘法表格 """ i = 1 while (i < 10): j = 1 while (j <= i): print("%d x %d = %d " % (j, i, (i * j)), end="") j += 1 print() i += 1
12. range 对象
range 是范围对象,指定起始(包括)、结束(不包括)和步长。注意 range 在 Python3 和 Python2 是不同的.
""" range 快速构造数字序列,[)区间 Python3 的 range 返回值为一个可迭代的对象,可以用list() 将其转换为 list 结果如下: [1, 2, 3, 4, 5, 6, 7, 8, 9] range(1, 10, 2) range(10, 1, -1) """ r1 = range(1, 10) # 步长1,必须是整数 r2 = range(1, 10, 2) # 步长2 r3 = range(10, 1, -1) # 步长-1 print(list(r1)) print(r2) print(r3)
13. 元组
元组类似于数据表中的一条记录,每个组员有不同的类型,内容不能修改,使用()表示。
""" 元组,使用()表示,元组不可变 """ t = (1, "tom", 12) # t[0] = 100 错误,元素不能修改 print(t, end="") print(t[0:-1], end="") print() for e in t: print(e)
14. 字典
字典等同于 Java 中的 map,使用 KV 方式存储。通过 Key 查找 Value。使用 {} 构造。
""" 字典,类似于 Java 的 map,以 KV 对表示 """ d = {1: "tom1", 2: "tom2", 3: "tom3", 4: "tom4"} d[1] d[1] = 100 # 包含k操作 print(3 in d) # 删除元素 d.pop(1) print(d) # 遍历字典,迭代所有的key for e in d.keys(): print(e) # 遍历字典,迭代所有的value for e in d.values(): print(e) # 迭代所有的元组,字典看作是元组的集合。 for e in d.items(): print(str(e[0]) + ":" + e[1]) # 反解析字典每个元素的内容到kv中 for (k, v) in d.items(): print(str(k) + ":::::" + v)
15. 类型转换
""" 类型转换 """ # 转换成字符串 str(x) print(str(100) + str(2)) # 转换成整数 int("100") print(int("100") + 2) # 转换成float类型 print(float("3.1415926")) print(float(10)) # 将字符串解析成数学表达式进行计算 express = "1 + 2 - 3 * 4 / 2" print(eval(express)) # set()不重复集合 s = set([1, 1, 1, 2, 2, 3]) print(s) # 列表、元组、字典转成字符串 print(str([1, 2, 2, 3, 4, 5])) print(str((1, 23, 45))) print(str({1: "tom1", 2: "tom2"}))
16. 运算
# -*-coding:utf-8-*- """" 运算符 """ # 整除 print(1 / 2) # 取余 print(1 % 2) # 幂函数,2^3 print(2 ** 3) # 浮点数除法 print(1.0 / 2) # 整除 print(1.0 // 2) # 进制变换 print(hex(97)) # 转换成16进制 print(oct(97)) # 转换8进制 print(chr(97)) # 转换成字符 """" 位运算 """ print(1 & 2) print(1 | 2) print(1 ^ 2) # 异或 print(~1) # 取反 print(1 << 1) # 有符号右移 print(-1 >> 1) """ 逻辑运算 """ print(1 < 2 and 2 > 3) print(1 < 2 or 2 > 3) print(not 1 < 2) """ 身份运算 """ a = [1, 2, 3, 4, 5] b = a[0:3] # 判断是否是同一对象 print(a is b) # 判断内容是否相同 print(a == b) """ 条件运算 """ age = 15 if age < 18: print("少年") elif age > 60: print("老年") else: print("中年")