选择排序
# 从大到小
lista = [3,5,2,4,1]
count = 0
for i in range(len(lista)):
for j in range(i+1, len(lista)):
print(lista)
if lista[i]<lista[j]:
print('exchange')
blank = lista[j]
lista[j] = lista[i]
lista[i] = blank
count += 1
print('经过 %d次循环完成排序' %count)
print(lista)
冒泡排序
# 从大到小
lista = [3,5,2,4,1]
count = 0
for i in range(len(lista)):
for j in range(i+1, len(lista)):
print(lista)
if lista[i]<lista[j]:
print('exchange')
blank = lista[j]
lista[j] = lista[i]
lista[i] = blank
count += 1
print('经过 %d次循环完成排序' %count)
print(lista)
封装成函数
def rank(lista, ascending=0):
'''
对列表进行冒泡排序,输入参数list,0/1
第二个参数0降序,1升序
'''
count = 0
for i in range(len(lista)-1):
for j in range(len(lista)-i-1):
if ascending == 0 :
if lista[j]<lista[j+1]:
blank = lista[j]
lista[j] = lista[j+1]
lista[j+1] = blank
else:
if lista[j]>lista[j+1]:
blank = lista[j]
lista[j] = lista[j+1]
lista[j+1] = blank
count += 1
print('经过 %d次循环完成排序' %count)
print(lista)
help(rank)
Help on function rank in module __main__:
rank(lista, ascending=0)
对列表进行冒泡排序,输入参数list,0/1
第二个参数0降序,1升序
listb=[4,7,9,2,4,0,4]
rank(listb)
经过 21次循环完成排序
[9, 7, 4, 4, 4, 2, 0]
rank(listb,1)
经过 21次循环完成排序
[0, 2, 4, 4, 4, 7, 9]
盲写代码时的几个错误:
range用法
range(a)
range(a,b)
不是[], 中间也不是:
选择排序, 选出最大的放在前面,第二层循环是从i到最后元素(后半部分)
冒泡排序, 小的往后移动,第二层循环是从起始到总长-i-1(前半部分)
账号管理系统
def login():
name = input('请输入用户名:')
if dict_account.__contains__(name):
print('已有账户')
password = input('请输入密码:')
if password == dict_account[name]:
print('login succeed')
else:
# 没有账户,
password = input('设置密码:')
dict_account[name] = password
login()