python基础语法学习

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的基本使用教程

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值