文章目录
Python
基础
基本语法
① 注释:# 或者 三个单引号或三个双引号(多行注释)
② 语句最后不用分号(😉
③ 使用变量不用定义类型,直接a=0
④ 单引号(‘’)等同于双引号(“”)
⑤ 输出:print
转义字符
-
换行 \n
-
水平制表符 \t
-
-
输出文本时垂直方向对齐
-
print("1\t2\t3\t") print("10\t20\t30\t") # 输出 # 1 2 3 # 10 20 30
-
-
-
回车 \r
-
退格 \b
-
取消转义 r®
数据类型
- 整型 int
- 浮点型 float
- 字符型 str(字符串)
- 布尔型 True,False
强制类型转换
-
int()
-
float()
-
str()
- print('我叫‘+name+’,今年‘+str(age)+‘岁’)
注:小数不能转成int,error
输入 input()
-
input一般和赋值语句连用
-
接收的是str类型,如有需要须进行类型转换
name = input('你叫啥') print(name) age1=input('年龄1') age2=input('年龄2') print('总年龄为',age1+age2)
算术运算符
-
整除 //
- 一正一负向下取整,e.g 9//-4 → -3
-
幂运算 **
-
取余 %
-
一正一负按公式,余数=被除数-除数×商(整数商)
e.g 9%-4 → 9-(-4)×(-3)=-3
-
字符串的拼接
变量的格式化输出
-
# 定义字符串变量 name,输出 我的名字叫 小明,请多多关照! name = "小明" print("我的名字叫 %s,请多多关照!" % name) # 定义整数变量 student_no,输出 我的学号是 100 student_no = 100 print("我的学号是 %06d" % student_no) # 多个变量的输出 name = "小明" age = 18 print("我叫%s,我今年%d岁了" % (name,age)) # 定义一个小数 scale,输出 数据比利时 80.00% scale = 0.8 print("数据比利时%.2f%%" % (scale*100)) # 注意括号,不然就变成字符串的拼接
关键字
可以通过以下命令查看python中的关键字
import keyword
print(keyword.kwlist)
if语句
if 条件:
条件满足要执行的事情
elif 条件:
条件满足要执行的事情
else:
条件满足要执行的事情
# if (()
# or ()
# or ()):
逻辑运算符
- 与 and
- 或 or
- 非 not
- 可以和 if 连用 if not
区分C中的 &&,||
随机数
import random # 导入随机数工具包
random.randint(1, 10) # 生成1到10的随机数
while循环
i = 0
while i <= 4:
print("Hello Python!")
i += 1
# 效果就是c中的for循环
break和continue
-
break 某一条件满足时退出当前循环
-
continue 某一条件满足时,不执行剩下语句
-
i = 0 while i <= 10: if(i == 3) i += 1 # 用continue注意修改条件值 continue print(i) i+=1
-
print的增强
-
在默认情况下,print输出内容后会在内容末尾增加换行
-
如果不想换行,可以在print输出内容的后面增加,end=“”
-
其中""中间可以指定print输出内容之后继续希望显示的内容
-
# 输出内容后不会换行 print("*", end="") print("*") # 输出 ** # 单纯换行 print("") # 相当于c中的printf("\n")
函数
# 定义
def 函数名():
函数封装的代码
# 调用
函数名()
# 注释
def 函数名(): # 函数定义的上方要空两行
'''注释内容'''
# Ctrl+Q 可以查看函数的注释内容(光标要在函数名位置)
-
与c一样,函数也可以进行参数的传递和返回值
-
def sum_2_num(num1 , num2): return num1 + num2 result = sum_2_num(1,2) print(result)
-
-
将光标指向函数名在小灯泡处可以选择插入形参注释,注释完按 Ctrl+Q 可以查看注释
模块
- 可以 在一个python文件 中定义 变量或者函数
- 然后在 另外一个文件 中使用 **import **导入这个模块
- 导入后可以使用 模块名.变量 / 模块名.函数 的方式调用这个模块中的资源
进阶
高级变量
列表(数组 list )
-
用 [ ] 定义
-
在 ipython 中定义一个列表,然后输 列表名. +Tab 会提示列表能够使用的方法
-
序号 分类 关键字 / 函数 / 方法 说明 1 增加 列表.append(数据) 末尾追加 列表.insert(索引,数据) 插入 列表.extend(列表2) 列表拼接 2 删除 列表.remove(数据) 删除数据 列表.pop(索引) 删除指定位置数据 列表.clear() 删除全部 del 列表[索引] 从内存删除 3 统计 len() 查看列表长度 列表.count(数据) 数据出现次数 4 排序 列表.sort() 升序 列表.sort(reserve=True) 降序
-
-
name_list = ["zhangsan", "lisi", "wangwu"] # 1.取值取索引 # list index out of range 列表索引超出范围 print(name_list[2]) # 知道数据的内容,想确定数据在列表中的位置 print(name_list.index("wangwu")) # 2.增加 # append 方法可以向列表的末尾追加数据 name_list.append("zhaoliu") # insert 方法可以在列表的指定位置插入 name_list.insert(1, "xiaoming") # extend 方法可以追加一个列表 temp_list = ["gaoshu", "xiandai", "dianfen"] name_list.extend(temp_list) # 3.删除 # remove 方法可以从列表中删除指定的数据 name_list.remove("wangwu") # pop 方法默认删除最后一个数据 name_list.pop() # pop 方法也可以删除指定位置数据 name_list.pop(1) # clear 方法可以清空列表 name_list.clear() # del 命令(delete) 删除指定位置数据 del name_list[1] # del 本质上是把变量从内存中删除 # 4.len() 函数查看列表长度 # 5.count 方法统计列表中一个数据出现次数 count = name_list.count("zhangsan") # 6.排序 # 升序 name_list.sort() num_list.sort() # 降序 name_list.sort(reverse=True) num_list.sort(reverse=True) # 逆序 name_list.reverse()
-
迭代遍历
-
name_list = ["gaoshu", "xiandai"] for name in name_list: print("我的名字是 %s" % name)
-
元组 (tuple)
- 与列表的区别是:元组定义了之后不能修改,类似c中的结构体
# 1.定义
info_tuple = ("zhangsan", 18, 175)
# 2.取值
info_tuple[1]
# 3.定义只包含一个元素的元组
single_tuple = (5,) # 如果不加逗号,则 type(single_tuple) 为 int
# 两个方法
# 1.取索引
info_tuple.index("zhangsan")
# 2.统计
info_tuple.count("zhangsan")
-
应用场景
-
函数返回值,可以返回多个值
-
格式化字符串以及字符串拼接
-
info_tuple = ("小明", 18, 1.75) print("%s今年 %d岁,身高 %.2f" % info_tuple) info_str = "%s今年 %d岁,身高 %.2f" % info_tuple print(info_str)
-
-
把列表转化成元素,保护数据
-
# 元组与列表的相互转化 tuple(列表) list(元组)
-
-
字典 (dictionary)
- 无序对象的集合 (列表是有序)
- 使用 键值对 存储数据
- 键 key 是索引,必须是唯一的,只能使用 字符串、数字或元组
- 值 value 是数据,可以是任何数据类型
# 1.定义
xiaoming = {"name": "小明",
"age": 18,
"height": 1.75}
# 2.取值
print(xiaoming["name"])
# 3.增加/修改
xiaoming["gender"] = True # key不存在,增加
xiaoming["name"] = "xiaogang" # key存在,修改
# 4.删除
xiaoming.pop("name") # 使用pop方法
# 5.统计键值对数量
print(len(xiaoming_dict))
# 6.合并字典
temp_dic = ("height":1.75,
"age":20)
# 7.注,如果被合并的字典中包含也已经存在的键值对,会覆盖原有的键值对
xiaoming_dict.update(temp_dict)
# 8.清空字典
xiaoming_dict.clear
# 9.迭代遍历字典
# 变量k是每一次循环中,获取到的键值对的key
for k in xiaoming_dict:
print("%s - %s" % (k, xiaoming[k]))
# 10.字典与列表的组合
card_list = [
{},
{}
]
字符串
- 双引号,单引号都可以定义
- 看做C中的数组
str1 = "hello hello"
print(str1[0])
for c in str1:
print(c)
# 1.统计字符串的长度
print(len(str1))
# 2.统计某一个小(子)字符串出现的次数
print(strl.count("llo"))
# 3.某一个子字符串出现的位置
print(str1.index("llo"))
# 注,如果使用index方法传递的子字符串不存在,程序会报错
-
方法(可用ipython查看)
-
说明
-
1.1 isspace方法还可以判断空白字符,\t\n\r
-
1.2 isdecimal、isdigit、isnumeric都不能判断小数
-
2.1 find方法指定的字符串不存在会返回 -1
-
5.1 在网络中抓取的文本,可以先用strip方法去除空白字符,再用center居中文本
-
6.1
-
# 1.拆分字符串 poem_list = poem_str.split() # 2.合并字符串 result = " ".join(poem_list) print(result)
-
-
-
字符串的切片
-
str[开始位置:结束位置:步长] # 不包含结束位置的那个字符
-
num_str = "0123456789" num_str[2:6] # 截取2到5位置的字符串 num_str[2:] # 截取2到末尾的字符串 num_str[:] # 截取完整字符串 num_str[0::2] # 从开始位置每隔一个取一个 Out:02468 num_str[-1] # 倒叙 倒数第一个字符 Out:9 num_str[-2:] # 截取字符串末尾两个字符 Out:89 num_str[-1::-1] #逆序 -1可以省略 步长-1表示向左开始切
-
公共方法
Python的内置函数
函数 | 描述 | 备注 |
---|---|---|
len(item) | 计算容器中元素的个数 | |
del(item) | 删除变量 | del 有两种方法 |
max(item) | 返回容器中元素的最大值 | 如果是字典,只针对 key 比较 |
min(item) | 返回容器中元素的最小值 | 同上 |
cmp(item1,item2) | 比较两个值,-1小于/0相等/1大于 | Python 3 取消了 cmp函数,可以用比较运算符比较 |
- 列表元组可以比较大小,字典不可以
- 字符串 比较符合以下规则: “0” < “A” < “a”
切片
- 字符串""、列表[]、元组() 都支持切片,字典不支持
运算符
运算符 | Python 表达式 | 结果 | 描述 | 支持的数据类型 |
---|---|---|---|---|
+ | [1,2] + [3,4] | [1,2,3,4] | 合并 | 字符串、列表、元组 |
* | [“Hi”]*4 | [“Hi”,“Hi”,“Hi”,“Hi”] | 重复 | 同上 |
-
类比方法
-
t_list = [1,2] t_list.extend([3,4]) t_list # Out:[1,2,3,4] t_list.qppend([8,9]) t_list # Out:[1,2,3,4,[8,9]]
-
运算符 直接创建新的列表,方法 是修改原来的列表
-
-
成员运算符 in 和 not in
- 支持字符串、列表、元组、字典
- 对 字典 判断的是 key
完整的 for 循环语法
for 变量 in 集合:
循环体代码
else:
没有通过 break 退出循环,循环结束后,会执行的代码
# 应用
friends = [
{"name":"宝源"},
{"name":"冼城"},
{"name":"志恒"}
]
find_name = "宝源"
for target in friends:
print(target)
if target["name"] == find_name:
print("找到了 %s" % find_name)
break
else:
print("抱歉没有找到 %s" % find_name)
LINUX 上的 Shebang 符号(#!)
- #! 这个符号叫做 Shebang 或者 Sha-bang
- Shebang 通常在 Unix 系统脚本中的 第一行开头 使用
- 指明 执行这个脚本文件 的 解释程序
使用 Shebang 的步骤
-
- 使用 which 查询 python3 解释器所在路径
which python3
-
- 修改运行的 主 python 文件,在第一行增加以下内容
#! /usr/bin/python3
-
- 修改 主 python 文件 的文件权限,增加执行权限
chmod +x cards_main.py
-
4.在需要时执行即可
./cards_main.py
变量
- id() 可以查看变量的地址