练习1:输出任意长度由字母和数字组成的验证码
import random
def code_generate(code_len):all_char = 'abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ'last_char_pos = len(all_char) -1code = ''for _ in range(code_len):index = random.randint(0,last_char_pos)code += all_char[index]return codeprint(code_generate(4))
练习2:双色球选号
from random import randint,sample
def select_balls():red_balls = [x for x in range(1,36)]select_ball = sample(red_balls,6)select_ball.sort()select_ball.append(randint(1,16))return select_balldef display_ball(ball):l = len(ball)for i in range(l):if i == l-1:print('|',ball[i])else:print(ball[i],end=' ')print()def main():n = int(input('请输入机选组数:'))for _ in range(n):display_ball(select_balls())if __name__ == '__main__':main()
练习3:约瑟夫环问题
'''有15个基督徒和15个非基督徒在海上遇险,
为了能让一部分人活下来不得不将其中15个人扔到海里面去,
有个人想了个办法就是大家围成一个圈,由某个人开始从1报数,
报到9的人就扔到海里面,他后面的人接着从1开始报数,报到9
的人继续扔到海里面,直到扔掉15个人。由于上帝的保佑,
15个基督徒都幸免于难,问这些人最开始是怎么站的,哪些位置
是基督徒哪些位置是非基督徒。'''def main():person = [True] *30pass_p,i,number = 0,0,0while pass_p < 15:if person[i]:number += 1if number == 9:pass_p += 1number = 0person[i] =Falsei += 1i %= 30for p in person:print('基督徒' if p == True else '非基督徒',end=' ')if __name__ =='__main__':main()
练习4:选择排序
def fast_order(list1):l = len(list1)for i in range(l-1):min_pos = itemp = 0for j in range(i+1,l):if list1[min_pos] > list1[j]:min_pos = jif min_pos != i:temp = list1[i]list1[i] = list1[min_pos]list1[min_pos] = tempreturn list1def main():list1 = [1,3,6,7,2,5,9,0,8]print(fast_order(list1))if __name__ == '__main__':main()
练习5:冒泡排序
def bubble_order(list1):l = len(list1)for i in range(l):temp = 0for j in range(l-1-i):if list1[j] > list1[j+1]:temp = list1[j]list1[j] = list1[j+1]list1[j+1] = tempreturn list1def main():list1 = [4,7,9,1,3,0,5,8,2]print(bubble_order(list1))if __name__ == '__main__':main()
外圈循环次数是元素的个数,内圈是元素个数-i-1,因为每一次循环都会冒出一个最大值,因此是-i
练习6:快速排序
def quick_sort(list1):l = len(list1)if l < 2:return list1else:left,right = [],[]mid = list1[l // ve(mid)for i in list1:if i > mid:right.append(i)else:left.append(i)return quick_sort(left) + [mid] + quick_sort(right)
练习7:插入排序
def insert_sort(list1):l = len(list1)for i in range(1,l):key = list1[i]j = i - 1while j >= 0:if list1[j] > key:list1[j],list1[j+1] = key,list1[j+1]j-=1return list1
本文发布于:2024-01-28 00:10:44,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/17063718413478.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |