python教程11-交换变量的值、冒泡排序、列表的排序和反转、可变数据类型和不可变数据类型

这是一篇针对初学者的Python教程,涵盖了如何交换两个变量的值,冒泡排序算法的实现,列表的排序和反转操作,以及对可变和不可变数据类型的讲解。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

python教程_小白入门11/2020/08/02

学习目标
00

P79 交换两个变量的值
# 方法1
a1 = 13
b1 = 20

c1 = b1
b1 = a1
a1 = c1
print(a1)  # 20
print(b1)  # 13

# 需要使用到第三方变量才嫩实现数值的交换
#  方法2--使用运算符来实现,只能是数字
a2 = a1 + b1
b2 = a2 - b1
a2 = a2 - b2
print(a2)  # 13
print(b2)  # 20

# 方法3-使用异或运算符--a异或一个数,再异或一个数 结果是它本身  123^4561^4561 = 123
a3 = a2 ^ b2
b3 = a3 ^ b2
a3 = a3 ^ b3

print(a3)  # 20
print(b3)  # 13

# 方法4 使用python特有的
a3, b3 = b3, a3
print(a3)   # 13
print(b3)   # 20

P80 冒泡排序
# # 冒泡排序——思想:
# # 让一个数字和它相邻的下一个数字进行比较运算
# # 如果前一个数字大于后一个数字,交换两个数据的位置
nums = [6, 5, 3, 1, 8, 7, 2, 4]
# count = 0
# while count < len(nums):
#     for i in range(0, len(nums) - 1):
#         j = i + 1
#         if nums[i] >= nums[j]:
#             t = nums[i]
#             nums[i] = nums[j]
#             nums[j] = t
#         else:
#             pass
#         i += 1
#         j += 1
#     count += 1
# print(nums)       # [1, 2, 3, 4, 5, 6, 7, 8]
# ------------------------------------------------------------------
# 一共有8个数字,冒泡排序的特点就是每一次循环都能有一个数字跑到最终位置上
# 所以,我们比较7次就可以
# 改进,每一趟比较次数的优化。总比较趟数的优化
i = 0
while i < len(nums) - 1:
    i += 1
    n = 0
    while n < len(nums) - 1:
        if nums[n] > nums[n + 1]:
            nums[n], nums[n + 1] = nums[n + 1], nums[n]
        n += 1
    print(nums)

P81列表的排序和反转
# 列表的复制
nums = [6, 5, 3, 1, 8, 7, 2, 4]
# 调用列表的sort 方法可以直接对列表进行排序,直接对原有的列表进行排序
# nums.sort()
# print(nums)         # [1, 2, 3, 4, 5, 6, 7, 8]
# nums.sort(reverse=True)
# print(nums)         # [8, 7, 6, 5, 4, 3, 2, 1]
# sort 方法是直接在原数组上改的,sorted是生成一个新的排序好的列表
x = sorted(nums)
print(nums)  # [6, 5, 3, 1, 8, 7, 2, 4]
print(x)  # [1, 2, 3, 4, 5, 6, 7, 8]

# reverse()方法也是直接在原列表上进行修改
name = ['zhangsan', 'lisi', 'wangwu']
name.reverse()
print(name)  # ['wangwu', 'lisi', 'zhangsan']

print(name[::-1])       # ['zhangsan', 'lisi', 'wangwu']

P82 可变数据类型和不可变数据类型
# 可变类型和不可变类型
a = 12
b = a
a = 10
print(b)  # 12

nums1 = [100, 200, 300]
nums2 = nums1
nums1[0] = 1
print(nums2)        # [1, 200, 300]
#------------------------------------
# python里的数据都是保存在内存里的,python的数据类型又可分为可变类型和不可变类型
# 不可变类型: 字符串,数字,元组
# 可变类型:列表,字典,集合

# 不可变数据类型:如果修改值,内存地址会发生变化
# 可变数据类型:如果修改值,内存地址不会发生改变

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值