1.造数函数
range()函数返回的是一个可迭代对象(类型是对象),而不是列表类型, 所以打印的时候不会打印列表。list()函数是对象迭代器,可以把range()回的可迭代对象转为一个列表,返回的变量类型为列表。range(3) -->[0,1,2]- 函数语法
range(stop)range(start, stop,[step])
- 参数说明:
- start: 计数从 start 开始。默认是从 0 开始。例如range(5)等价于range(0, 5);
- stop: 计数到 stop 结束,但不包括 stop。例如:range(0, 5) 是[0, 1, 2, 3, 4]没有5
- step:步长,默认为1。例如:range(0, 5) 等价于 range(0, 5, 1)
当出现这种情况
range(2,-1)即start参数比stop参数要大的情况,需要将step参数调整为负数即可反向打印。如:print(list(range(2,-1,-1)))。这个程序执行的结果为:
2.练习
- 随机生成20以内加减法的程序
import random
n = 21
number = 1
while number < n:
a = random.choice(list(range(n)))
b = random.choice(list(range(n)))
mark = random.choice(['+', '-'])
if a > b :
print(a, mark, b, '=')
else:
print(b, mark, a, '=')
result = input("请输入正确答案")
if result.isdigit():
result = int(result)
if mark == '+':
if result == a+b:
print("回答正确")
else:
print("回答错误,正确答案为%s"%(a+b))
else:
if a > b:
if result == a-b:
print("回答正确")
else:
print("回答错误,正确答案为%s" % (a - b))
else:
if result == b - a:
print("回答正确")
else:
print("回答错误,正确答案为%s" % (b - a))
else:
number = number - 1
print()
print("头给你敲个包")
print()
number = number + 1
- 斗地主发牌游戏
- 生成54张牌,放在列表中
- 洗牌(列表中元素乱序)
- 取牌(每个人取17张,剩3张底牌)
知识点:
1. 乱序。random.shuffle(L)
2. 列表切片
import random
pai = []
k = ['J','Q','K']
taoshe = ['\u2660','\u2666','\u2663','\u2665']
for n in range(4):
pai.append("%sA"%taoshe[n])
for i in range(1,10):
pai.append("%s%s"%(taoshe[n],(i+1)))
for i in range(3):
pai.append("%s%s"%(taoshe[n],(k[int(i)])))
pai.append("大王")
pai.append("小王")
random.shuffle(pai)
p1 = pai[0:17]
p2 = pai[17:34]
p3 = pai[34:51]
card = pai[51:]
print(p1)
print(p2)
print(p3)
print(card)
3.冒泡排序
- 冒泡排序(Buble Sort):是一种计算机科学领域的较简单的排序算法。他重复的走访要排序的元素列,依次比较两个相邻的元素,一层一层的将较大的元素往后移动,其现象和气泡在上升过程中慢慢变大类似,故称为冒泡排序
- 算法思想:从第一个和第二个开始比较,如果第一个比第二个大,则交换位置,然后比较第二个和第三个,逐渐往后。经过第一轮最大的元素已经排到最后,所以重复上诉操作的话第二大的则会排到倒数第二的位置。经过上述操作
n-1次即可完成排序,因为最后一层只有一个元素,所以不需要比较
python元素的互换
python中可以通过:`a,b = b,a`来实现元素的互换,不需要引入第三方元素
arr = [56,34,92,23,7,23,2,5,2,5]
for n in range(len(arr)-1):
for i in range(len(arr)-1-n):
if arr[i] > arr[i+1]:
arr[i],arr[i+1] = arr[i+1],arr[i]
print(arr)
- 分析:冒泡排序是一种简单直接暴力的排序算法,因为每一轮比较可能多个元素移动位置,而元素位置的互换是需要消耗资源的,所以这是一种偏慢的排序算法,仅适合用于对于含有较少元素的数列进行排序。稳定性:属于稳定排序。比较性:比较排序。

