1 打印
# 1 打印设置
print("Hello World!") # 默认打印带自动换行
print("Hello World!", end="") # 打印取消自动换行
print("The Hello World will in same line with the second one.")
print("Hello World!\n你好哇") # 一句话中间如何换行
pr_helloworld = 12
print(f"helloworld value: {pr_helloworld}") # 打印变量值 f不能省
# Hello World!
# Hello World!The Hello World will in same line with the second one.
# Hello World!
# 你好哇
# helloworld value: 12
2 计算
# 2 计算cal
cal_a = 5
cal_b = cal_a / 2 # 自动推导数据类型,若小数则不会取整 2.5
print(f"5除以2得:{cal_b}")
cal_c = cal_a % 2
print(f"5除以2取余得:{cal_c}")
cal_d = cal_a ** 2
print(f"5的2次幂得:{cal_d}") # 幂次计算
cal_e = int(cal_a / 2)
print(f"5除以2,取整得:{cal_e}")
# 5除以2得:2.5
# 5除以2取余得:1
# 5的2次幂得:25
# 5除以2,取整得:2
3 bool运算
# 3 布尔运算bool
bo_a = 12
bo_b = 0
bo_c = not bo_a
bo_d = bo_a or bo_b
bo_e = bo_a and bo_b
print(f"bo_c value: {bo_c}")
print(f"bo_d value: {bo_d}")
print(f"bo_e value: {bo_e}")
# bo_c value: False
# bo_d value: 12
# bo_e value: 0
4 字符串
# 4 字符串str
# 4.1 拼接
str_a = "ST"
str_b = "RING"
str_c = str_a + str_b
str_d = str_a + 2 * str_b
print(f"str_c value: {str_c}")
print(f"str_d value: {str_d}")
# str_c value: STRING
# str_d value: STRINGRING
# 4.2 大小写转换
str_e = str_d.lower()
str_f = str_e.upper()
str_g = "hello world"
str_h = str_g.title() # 每个单词的首字母大写
str_i = str_g.capitalize() # 字符串首字母大写
print(f"str_e value: {str_e}")
print(f"str_f value: {str_f}")
print(f"str_h value: {str_h}")
print(f"str_i value: {str_i}")
# str_e value: stringring
# str_f value: STRINGRING
# str_h value: Hello World
# str_i value: Hello world
# 4.3 删除空白字符
str_j = " hello world "
str_k = str_j.lstrip()
str_l = str_j.rstrip()
str_m = str_j.strip()
print(f"str_k value: {str_k}end flag")
print(f"str_l value: {str_l}end flag")
print(f"str_m value: {str_m}end flag")
# str_k value: hello world end flag
# str_l value: hello worldend flag
# str_m value: hello worldend flag
# 4.4 索引访问
print(f"str_m[0] value: {str_m[0]}")
# str_m[0] value: h
# 4.5 字符串某索引值修改
# str_m[0] = '2' # 该语句语法检查报错 不可变数据类型,无法修改
5 循环语句
# 5 循环语句 cir
# while循环
cir_a = 0
while cir_a < 10:
cir_a += 1
else: # 承接循环正常结束的打印提示
print(f"while 循环结束,cir_a value: {cir_a}")
# for循环
for cir_b in range(cir_a):
print(cir_b, end=" ")
if cir_b == 5:
break
else: # 若上面break满足,则这里不会打印,直接跳出
print(f"for 循环结束,cir_b value: {cir_b}")
# string遍历
cir_str_a = "Hello World"
for cir_c in cir_str_a:
print(cir_c, end=" ")
else:
print(f"for 字符串循环结束,cir_c value: {cir_c}")
# while 循环结束,cir_a value: 10
# 0 1 2 3 4 5 H e l l o W o r l d for 字符串循环结束,cir_c value: d
6 切片
# 6 切片slice
sli_str_a = "This is a string"
sli_str_b = sli_str_a[1:2] # 左闭右开,和range用法一样的
sli_str_c = sli_str_a[3:] # 从索引3到最后
sli_str_d = sli_str_a[:3] # 从最开始到索引3-1
sli_str_e = sli_str_a[3:13:2] # 从索引3到索引13-1,间隔为2-1不取
sli_str_f = sli_str_a[::-1] # 字符串倒序
sli_str_g = sli_str_a.split(" ") # 字符串分割,分割后为列表
sli_str_h = "-".join(sli_str_a)
sli_str_i = "-".join(sli_str_g)
print(f"sli_str_b value: {sli_str_b}")
print(f"sli_str_c value: {sli_str_c}")
print(f"sli_str_d value: {sli_str_d}")
print(f"sli_str_e value: {sli_str_e}")
print(f"sli_str_f value: {sli_str_f}")
print(f"sli_str_g value: {sli_str_g}")
print(f"sli_str_h value: {sli_str_h}")
print(f"sli_str_i value: {sli_str_i}")
# sli_str_b value: h
# sli_str_c value: s is a string
# sli_str_d value: Thi
# sli_str_e value: si t
# sli_str_f value: gnirts a si sihT
# sli_str_g value: ['This', 'is', 'a', 'string']
# sli_str_h value: T-h-i-s- -i-s- -a- -s-t-r-i-n-g
# sli_str_i value: This-is-a-string
7 列表
# 7 列表
# 7.1 列表可以无限嵌套
array_a = [ # 二维数组
[1,2,3],
[4,5,6],
[7,8,9]
]
print(f"array_a[2][1] value: {array_a[2][1]}")
# array_a[2][1] value: 8
for i in array_a:
for j in i:
print(f"{j}", end=" ")
print("")
# 1 2 3
# 4 5 6
# 7 8 9
# 7.2 列表的方法
array_a.append("t") # 尾部添加
# 1 2 3
# 4 5 6
# 7 8 9
# t
array_a.pop() # 尾部移除
# 1 2 3
# 4 5 6
# 7 8 9
array_a.insert(1,"t") # 在索引处插入元素
# 1 2 3
# t
# 4 5 6
# 7 8 9
array_a.remove("t") # 指定移除元素
# 1 2 3
# 4 5 6
# 7 8 9
array_a.clear() # array_a为空
del array_a # 下面没有array_a的定义了
# for i in array_a:
# for j in i:
# print(f"{j}", end=" ")
# print("")
# 执行上面报错:NameError: name 'array_a' is not defined. Did you forget to import 'array_a'?
# 7.3 列表复制
array_b = ["qw", 1243, 1.2, [1, 1, 2, 4], False]
array_c = array_b # array_c和array_b指向同一块内存
array_d = array_b.copy() # 用copy函数会复制两份
array_b.insert(2,"happy")
print(f"array_c value: {array_c}")
print(f"array_b value: {array_b}")
print(f"array_d value: {array_d}")
# array_c value: ['qw', 1243, 'happy', 1.2, [1, 1, 2, 4], False]
# array_b value: ['qw', 1243, 'happy', 1.2, [1, 1, 2, 4], False]
# array_d value: ['qw', 1243, 1.2, [1, 1, 2, 4], False]
# 7.4 列表排序 2种方法
array_e = [5, 4, 7, 9]
array_e[1] = 15 # 列表支持赋值
array_f = sorted(array_e)
array_e.sort()
for i in array_e:
print(f"{i}", end=" ")
for i in range(len(array_e)): # 也可以下标访问
print(f"{array_e[i]}", end=" ")
for i in array_f:
print(f"{i}", end=" ")
# 5 7 9 15 5 7 9 15 5 7 9 15
8 元组
# 8 元组 tuple
tuple_a = (2, 1, 3, 5, 2)
# tuple_a[1] = 3 # 该句报错:元组不支持赋值
9 集合
# 9 集合 set
# 特性:确定性 无序性 互译性
print()
set_a = {1, 2, 2, 4, 45, 45}
print(f"set_a value: {set_a}")
# set_a value: {1, 2, 4, 45}
10 字典
# 10 字典 dict
# 字典和集合都是{},{}表示的是空的字典,若表示空集合,用set()
set_b = set() # set_b是个空的集合
dict_a = {} # dict_a是个空的字典
dict_b = {"a": 1, "b": 2, 3: 5} # 键必须是可哈希的,即不可变数据类型,如:字符串、元组、整型、浮点型
print(f"{dict_b.keys()}") # 所有的键
print(f"{dict_b.values()}") # 所有的值
for k, v in dict_b.items(): # 字典里面的键值对打印
print(f"键:{k} 值:{v}")
# 键:a 值:1
# 键:b 值:2
# 键:3 值:5
print(dict_b["a"])
del dict_b["a"] # 删除某一键值对
print(f"dict_b value: {dict_b}")
# dict_b value: {'b': 2, 3: 5}
11 可变/不可变数据类型
# 11 可变/不可变数据类型
# 不可变数据类型(Immutable)
# 整数(int):比如 1, 2, 3
# 浮点数(float):比如 1.0, 2.5
# 字符串(str):比如 "hello", "world"
# 元组(tuple):比如 (1, 2, 3), ("a", "tuple")
# 布尔值(bool):True 或 False
# 复数(complex):比如 1+2j
# 可变数据类型(Mutable)
# 列表(list):比如 [1, 2, 3], ["a", "list"]
# 字典(dict):比如 {'key': 'value'}, {'name': 'Alice'}
# 集合(set):比如 {1, 2, 3}, {'a', 'set'}
# 字节数组(bytearray):比如 bytearray(b'bytes')
# 内存视图(memoryview):比如 memoryview(b'bytes')
# 说明
# 不可变类型:一旦创建,其内容不能被修改。如果需要修改,必须创建一个新的对象。
# 可变类型:可以在内存中进行修改,而不需要创建新的对象。
a = 10
b = a # b现在引用a指向的整数对象
a = 20 # 看起来a的值被改变了
print(f"b value: {b}") # 输出10,说明b仍然引用原来的整数对象
# b value: 10
以上学习参照PyCharm的基本使用教程