1.python特点
2.运行方式
- 使用解释器
$ python 01.py
- 交互式 使用ipython 命令进入交互式
3.注释
- 单行注释
# 这是一个单行注释
- 多行注释
""" 这是一个多行注释 """
4.运算符
运算符 | 描述 | |
---|
+ | 加 | 10 + 20 = 30 |
- | 减 | 10 - 20 = -10 |
* | 乘 | 10 * 20 = 200 |
/ | 除 | 10 / 20 = 0.5 |
// | 取整除 | 返回除法的整数部分(商) 9 // 2 输出结果 4 |
% | 取余数 | 返回除法的余数 9 % 2 = 1 |
** | 幂 | 又称次方、乘方,2 ** 3 = 8 |
运算符 | Python 表达式 | 结果 | 描述 | 支持的数据类型 |
---|
+ | [1, 2] + [3, 4] | [1, 2, 3, 4] | 合并 | 字符串、列表、元组 |
* | [“Hi!”] * 4 | [‘Hi!’, ‘Hi!’, ‘Hi!’, ‘Hi!’] | 重复 | 字符串、列表、元组 |
in | 3 in (1, 2, 3) | True | 元素是否存在 | 字符串、列表、元组、字典 |
not in | 4 not in (1, 2, 3) | True | 元素是否不存在 | 字符串、列表、元组、字典 |
> >= == < <= | (1, 2, 3) < (2, 2, 3) | True | 元素比较 | 字符串、列表、元组 |
5.变量类型
- 在
Python
中定义变量是 不需要指定类型(在其他很多高级语言中都需要) - 数据类型可以分为 数字型 和 非数字型
- 数字型
- 整型 (
int
) - 浮点型(
float
) - 布尔型(
bool
)
- 复数型 (
complex
)
- 主要用于科学计算,例如:平面场问题、波动问题、电感电容等问题
- 非数字型
- 字符串 不可变长
- 元组 不可变长
- 列表 变长
- 字典 变长
提示:在 Python 2.x 中,整数 根据保存数值的长度还分为:
In [1]: type(name)
6.常用的函数与关键字
print("hello world")
print("我的名字叫 %s,请多多关照!" % name)
print("我的学号是 %06d" % student_no)
print("苹果单价 %.02f 元/斤,购买 %.02f 斤,需要支付 %.02f 元" % (price, weight, money))
print("数据比例是 %.02f%%" % (scale * 100))
print("*", end="")
name = input("请输入姓名:")
import cards_tools
if holiday_name == "情人节":
print("买玫瑰")
elif holiday_name == "生日":
print("买蛋糕")
else:
print("每天都是节日啊……")
while i < 10:
if i == 2:
continue
if i == 3:
break
i += 1;
for stu_dict in students:
print(stu_dict)
if stu_dict["name"] == find_name:
print("找到了")
break
else:
print("没有找到")
print("循环结束")
result = 3 in (1, 2, 3)
a, b = b, a
row = 1
while row <= 9:
col = 1
while col <= row:
print("%d * %d = %d" % (col, row, row * col), end="\t")
col += 1
print("")
row += 1
def sum_2_num(num1, num2):
"""对两个数字的求和"""
return num1 + num2
result = sum_2_num(10, 20)
print("计算结果是 %d" % result)
def measure():
"""返回当前的温度和湿度多个参数"""
print("开始测量...")
temp = 39
wetness = 10
print("测量结束...")
return temp, wetness
def print_info(name, title="", gender=True):
"""
缺省值
:param title: 职位
:param name: 班上同学的姓名
:param gender: True 男生 False 女生
"""
gender_text = "男生"
if not gender:
gender_text = "女生"
print("%s%s 是 %s" % (title, name, gender_text))
print_info("小明")
print_info("老王", title="班长")
print_info("小美", gender=False)
def demo(num, *args, **kwargs):
"""
多值函数
"""
print(num)
print(args)
print(kwargs)
demo(1, 2, 3, 4, 5, name="小明", age=18, gender=True)
内置函数:
函数 | 描述 | 备注 |
---|
len(item) | 计算容器中元素个数 | |
del(item) | 删除变量 | del 有两种方式 |
max(item) | 返回容器中元素最大值 | 如果是字典,只针对 key 比较 |
min(item) | 返回容器中元素最小值 | 如果是字典,只针对 key 比较 |
cmp(item1, item2) | 比较两个值,-1 小于/0 相等/1 大于 | Python 3.x 取消了 cmp 函数 |
7.列表
name_list = ["zhangsan", "lisi", "wangwu"]
序号 | 分类 | 关键字 / 函数 / 方法 | 说明 |
---|
1 | 增加 | 列表.insert(索引, 数据) | 在指定位置插入数据 |
| | 列表.append(数据) | 在末尾追加数据 |
| | 列表.extend(列表2) | 将列表2 的数据追加到列表 |
2 | 修改 | 列表[索引] = 数据 | 修改指定索引的数据 |
3 | 删除 | del 列表[索引] | 删除指定索引的数据(删内存) |
| | 列表.remove[数据] | 删除第一个出现的指定数据 |
| | 列表.pop | 删除末尾数据 |
| | 列表.pop(索引) | 删除指定索引数据 |
| | 列表.clear | 清空列表 |
4 | 统计 | len(列表) | 列表长度 |
| | 列表.count(数据) | 数据在列表中出现的次数 |
5 | 排序 | 列表.sort() | 升序排序 |
| | 列表.sort(reverse=True) | 降序排序 |
| | 列表.reverse() | 逆序、反转 |
8.元组
name_list = (1, True, "wangwu")
info_tuple = (50, )
9.字典
xiaoming = {"name": "小明",
"age": 18,
"gender": True,
"height": 1.75}
for k in xiaoming:
print("%s: %s" % (k, xiaoming[k]))
xiaoming.clear xiaoming.items xiaoming.setdefault
xiaoming.copy xiaoming.keys xiaoming.update
xiaoming.fromkeys xiaoming.pop xiaoming.values
xiaoming.get xiaoming.popitem
10.字符串
string = "Hello Python"
for c in string:
print(c)
1) 判断类型 - 9
方法 | 说明 |
---|
string.isspace() | 如果 string 中只包含空格,则返回 True |
string.isalnum() | 如果 string 至少有一个字符并且所有字符都是字母或数字则返回 True |
string.isalpha() | 如果 string 至少有一个字符并且所有字符都是字母则返回 True |
string.isdecimal() | 如果 string 只包含数字则返回 True,全角数字 |
string.isdigit() | 如果 string 只包含数字则返回 True,全角数字 、⑴ 、\u00b2 |
string.isnumeric() | 如果 string 只包含数字则返回 True,全角数字 ,汉字数字 |
string.istitle() | 如果 string 是标题化的(每个单词的首字母大写)则返回 True |
string.islower() | 如果 string 中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是小写,则返回 True |
string.isupper() | 如果 string 中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是大写,则返回 True |
2) 查找和替换 - 7
方法 | 说明 |
---|
string.startswith(str) | 检查字符串是否是以 str 开头,是则返回 True |
string.endswith(str) | 检查字符串是否是以 str 结束,是则返回 True |
string.find(str, start=0, end=len(string)) | 检测 str 是否包含在 string 中,如果 start 和 end 指定范围,则检查是否包含在指定范围内,如果是返回开始的索引值,否则返回 -1 |
string.rfind(str, start=0, end=len(string)) | 类似于 find(),不过是从右边开始查找 |
string.index(str, start=0, end=len(string)) | 跟 find() 方法类似,不过如果 str 不在 string 会报错 |
string.rindex(str, start=0, end=len(string)) | 类似于 index(),不过是从右边开始 |
string.replace(old_str, new_str, num=string.count(old)) | 把 string 中的 old_str 替换成 new_str,如果 num 指定,则替换不超过 num 次 |
3) 大小写转换 - 5
方法 | 说明 |
---|
string.capitalize() | 把字符串的第一个字符大写 |
string.title() | 把字符串的每个单词首字母大写 |
string.lower() | 转换 string 中所有大写字符为小写 |
string.upper() | 转换 string 中的小写字母为大写 |
string.swapcase() | 翻转 string 中的大小写 |
4) 文本对齐 - 3
方法 | 说明 |
---|
string.ljust(width) | 返回一个原字符串左对齐,并使用空格填充至长度 width 的新字符串 |
string.rjust(width) | 返回一个原字符串右对齐,并使用空格填充至长度 width 的新字符串 |
string.center(width) | 返回一个原字符串居中,并使用空格填充至长度 width 的新字符串 |
5) 去除空白字符 - 3
方法 | 说明 |
---|
string.lstrip() | 截掉 string 左边(开始)的空白字符 |
string.rstrip() | 截掉 string 右边(末尾)的空白字符 |
string.strip() | 截掉 string 左右两边的空白字符 |
6) 拆分和连接 - 5
方法 | 说明 |
---|
string.partition(str) | 把字符串 string 分成一个 3 元素的元组 (str前面, str, str后面) |
string.rpartition(str) | 类似于 partition() 方法,不过是从右边开始查找 |
string.split(str="", num) | 以 str 为分隔符拆分 string,如果 num 有指定值,则仅分隔 num + 1 个子字符串,str 默认包含 ‘\r’, ‘\t’, ‘\n’ 和空格 |
string.splitlines() | 按照行(’\r’, ‘\n’, ‘\r\n’)分隔,返回一个包含各行作为元素的列表 |
string.join(seq) | 以 string 作为分隔符,将 seq 中所有的元素(的字符串表示)合并为一个新的字符串 |
7)切片
- 字符串[开始索引:结束索引:步长]
- 倒序索引就是 从右向左 计算索引
演练需求
-
- 截取从 2 ~ 5 位置 的字符串
-
- 截取从 2 ~
末尾
的字符串
-
- 截取从
开始
~ 5 位置 的字符串
-
- 截取完整的字符串
-
- 从开始位置,每隔一个字符截取字符串
-
- 从索引 1 开始,每隔一个取一个
-
- 截取从 2 ~
末尾 - 1
的字符串
-
- 截取字符串末尾两个字符
-
- 字符串的逆序(面试题)
答案
num_str = "0123456789"
# 1. 截取从 2 ~ 5 位置 的字符串
print(num_str[2:6])
# 2. 截取从 2 ~ `末尾` 的字符串
print(num_str[2:])
# 3. 截取从 `开始` ~ 5 位置 的字符串
print(num_str[:6])
# 4. 截取完整的字符串
print(num_str[:])
# 5. 从开始位置,每隔一个字符截取字符串
print(num_str[::2])
# 6. 从索引 1 开始,每隔一个取一个
print(num_str[1::2])
# 倒序切片
# -1 表示倒数第一个字符
print(num_str[-1])
# 7. 截取从 2 ~ `末尾 - 1` 的字符串
print(num_str[2:-1])
# 8. 截取字符串末尾两个字符
print(num_str[-2:])
# 9. 字符串的逆序(面试题)
print(num_str[::-1])