Python 基础学习Chapter5

it2023-09-09  71

Chapter5

函数 封装冒泡排序猜数字小游戏猜数字小游戏 函数版字符串敏感词过滤异常捕获练习年会 年会 你在哪生日歌百鸡百钱右对齐的台阶 函数 递归科赫曲线的绘制1科赫曲线绘制2七段数码管的绘制1七段数码管绘制2汉诺塔

函数 封装

冒泡排序

def bubbleSort(arr): n = len(arr) for i in range(n): for j in range(0, n - i - 1): if arr[j] > arr[j + 1]: arr[j], arr[j + 1] = arr[j + 1], arr[j] arr = [8, 5, 7, 19, 4, 5, 9] bubbleSort(arr) print("排序后的数组:") for i in range(len(arr)): print("%d" % arr[i], end=" ") 排序后的数组: 4 5 5 7 8 9 19

猜数字小游戏

import random number = random.randint(0, 9) n = 0 while (True): try: use_input = int(input("请输入数字:")) n += 1 if use_input == number: print(f'预测了{n}次,你猜中了') break elif use_input > number: print("遗憾,太大了") else: print("遗憾,太小了") except ValueError: print("输入必须为整数! ") continue 请输入数字:5 遗憾,太小了 请输入数字:8 遗憾,太小了 请输入数字:9 预测了3次,你猜中了

猜数字小游戏 函数版

import random def user_input(n): while (True): try: use_input = int(input("请输入数字:")) n += 1 if use_input == number: print(f'预测了{n}次,你猜中了') break elif use_input > number: print("遗憾,太大了") else: print("遗憾,太小了") except ValueError: print("输入必须为整数! ") continue number = random.randint(0, 9) n = 0 user_input(n) 请输入数字:2 遗憾,太大了 请输入数字:1 遗憾,太大了 请输入数字:0 预测了3次,你猜中了

字符串敏感词过滤

Sensitive_list = ["茄子", "香蕉"] new_str = input("请输入一句话:") for i in Sensitive_list: new_str = new_str.replace(i, '*') print(new_str) 请输入一句话:茄子 香蕉 **

异常捕获练习

try: alp = "ABCDEFGHIJKLMNOPQRSTUVWXYZ" idx = eval(input("请输入一个整数")) print(alp[idx]) except NameError: print("输入错误,请输入一个整数!") else:print("没有发生异常") finally: print("程序执行完毕,不知道是否发生了异常") 请输入一个整数斤斤计较 输入错误,请输入一个整数! 程序执行完毕,不知道是否发生了异常

年会 年会 你在哪

month_input = eval(input("请输入月份: ")) if month_input == 1: print("这个月有年会。") date_input = eval(input("请输入当天日期: ")) if date_input <= 12: print(f'距离举办年会还有{12 - date_input}天') else: print("这个月没有年会") else: print("已经开过年会了") 请输入月份: 2 已经开过年会了

生日歌

def happy(): print("Happy birthday to you!") def happyB(name): happy() happy() print("Happy birthday, dear {}!".format(name)) happy() happyB("Mike") print() happyB("Lily") Happy birthday to you! Happy birthday to you! Happy birthday, dear Mike! Happy birthday to you! Happy birthday to you! Happy birthday to you! Happy birthday, dear Lily! Happy birthday to you!

百鸡百钱

gj = 5 mj = 3 for gj_count in range(1, 20): for mj_count in range(1, 33): xj_count = (100 - gj_count * 5 - mj_count * 3) * 3 if (gj_count + mj_count + xj_count) == 100: print(f'公鸡{gj_count}只,母鸡{mj_count}只,小鸡{xj_count}只') 公鸡4只,母鸡18只,小鸡78只 公鸡8只,母鸡11只,小鸡81只 公鸡12只,母鸡4只,小鸡84只

右对齐的台阶

number = eval(input("请输入数字: ")) text = [] space = 0 for i in range(1, number + 1): space += len(str(i)) + 1 space -= 1 for i in range(1, number + 1): text.insert(0, str(i)) s = " ".join(text) print(" " * (space - len(s)), end="") print(s) 请输入数字: 12 1 2 1 3 2 1 4 3 2 1 5 4 3 2 1 6 5 4 3 2 1 7 6 5 4 3 2 1 8 7 6 5 4 3 2 1 9 8 7 6 5 4 3 2 1 10 9 8 7 6 5 4 3 2 1 11 10 9 8 7 6 5 4 3 2 1 12 11 10 9 8 7 6 5 4 3 2 1

函数 递归

科赫曲线的绘制1

import turtle def koch(size, n): if n == 0 : turtle.fd(size) else: for angle in [0,60,-120,60]: turtle.left(angle) koch(size/3,n-1) def main(): turtle.speed(0) turtle.penup() turtle.goto(-300,-50) turtle.pendown() turtle.pensize(2) koch(600,3) turtle.hideturtle() main()

科赫曲线绘制2

import turtle def koch(size, n): if n == 0 : turtle.fd(size) else: for angle in [0,60,-120,60]: turtle.left(angle) koch(size/3,n-1) def main(): turtle.speed(50) turtle.penup() turtle.goto(-200,100) turtle.pendown() turtle.pensize(2) level = 5 koch(400,level) turtle.right(120) koch(400,level) turtle.right(120) koch(400,level) turtle.hideturtle() main()

七段数码管的绘制1

import turtle,datetime def drawLine(draw): turtle.pendown() if draw else turtle.penup() turtle.fd(40) turtle.right(90) def drawDight(d): drawLine(True) if d in [2,3,4,5,6,8,9] else drawLine(False) drawLine(True) if d in [0,1,3,4,5,6,7,8,9] else drawLine(False) drawLine(True) if d in [0,2,3,5,6,8,9] else drawLine(False) drawLine(True) if d in [0,2,6,8] else drawLine(False) turtle.left(90) drawLine(True) if d in [0,4,5,6,8,9] else drawLine(False) drawLine(True) if d in [0,2,3,5,6,7,8,9] else drawLine(False) drawLine(True) if d in [0,1,2,3,4,7,8,90] else drawLine(False) turtle.left(180) turtle.penup() turtle.fd(20) def drawDate(date): for i in date : drawDight(eval(i)) def main(): turtle.setup(800,350,200,200) turtle.penup() turtle.fd(-300) turtle.seth(0) turtle.pensize(5) drawDate(datetime.datetime.now().strftime('%Y%m%d')) turtle.hideturtle() main()

七段数码管绘制2

import turtle,datetime def drawGrp(): turtle.penup() turtle.fd(5) def drawLine(draw): drawGrp() turtle.pendown() if draw else turtle.penup() turtle.fd(40) drawGrp() turtle.right(90) def drawDight(d): drawLine(True) if d in [2,3,4,5,6,8,9] else drawLine(False) drawLine(True) if d in [0,1,3,4,5,6,7,8,9] else drawLine(False) drawLine(True) if d in [0,2,3,5,6,8,9] else drawLine(False) drawLine(True) if d in [0,2,6,8] else drawLine(False) turtle.left(90) drawLine(True) if d in [0,4,5,6,8,9] else drawLine(False) drawLine(True) if d in [0,2,3,5,6,7,8,9] else drawLine(False) drawLine(True) if d in [0,1,2,3,4,7,8,90] else drawLine(False) turtle.left(180) turtle.penup() turtle.fd(20) def drawDate(date): turtle.pencolor('red') for i in date : if i == '-': turtle.write('年',font=("Arial",18,"normal")) turtle.pencolor('green') turtle.fd(40) elif i == '=': turtle.write('月',font=("Arial",18,"normal")) turtle.pencolor('blue') turtle.fd(40) elif i == '+': turtle.write('日',font=("Arial",18,"normal")) else: drawDight(eval(i)) def main(): turtle.setup(800,350,200,200) turtle.penup() turtle.fd(-300) turtle.seth(0) turtle.pensize(5) drawDate(datetime.datetime.now().strftime('%Y-%m=%d+')) turtle.hideturtle() main()

汉诺塔

def mov(n,a,b,c): if n== 1: print(a,'->',c) else: mov(n-1,a,c,b) mov(1,a,b,c) mov(n-1,b,a,c) num = input("请输入要移动的圆盘个数:") mov(int(num),'A','B','C') 请输入要移动的圆盘个数:3 A -> C A -> B C -> B A -> C B -> A B -> C A -> C
最新回复(0)