python教程_小白入门11/2020/08/02
学习目标
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的数据类型又可分为可变类型和不可变类型
# 不可变类型: 字符串,数字,元组
# 可变类型:列表,字典,集合
# 不可变数据类型:如果修改值,内存地址会发生变化
# 可变数据类型:如果修改值,内存地址不会发生改变