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函数
print("hello world")
print("我的名字叫 %s,请多多关照!" % name)
print("我的学号是 %06d" % student_no)
print("苹果单价 %.02f 元/斤,购买 %.02f 斤,需要支付 %.02f 元" % (price, weight, money))
print("数据比例是 %.02f%%" % (scale * 100))
print("*", end="")
# input函数
name = input("请输入姓名:")
# import导入
import cards_tools
# if函数
if holiday_name == "情人节":
print("买玫瑰")
elif holiday_name == "生日":
print("买蛋糕")
else:
print("每天都是节日啊……")
# while break continue
while i < 10:
if i == 2:
continue
if i == 3:
break
i += 1;
# for函数
for stu_dict in students:
print(stu_dict)
if stu_dict["name"] == find_name:
print("找到了")
break
else:
print("没有找到")
print("循环结束")
# 判断 true false
result = 3 in (1, 2, 3)
# 特殊交换顺序
a, b = b, a
# 打印99乘法表
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])