0320 python脚本编写实战训练营

课堂ppt

https://pdf.ceshiren.com/book/python_programming/ppt/[训练营]python脚本编写实战1.html#/6

课堂xmind脑图

0320Python训练营.xmind.zip (53.8 KB)

实战内容

python基础语法
python流程控制
python内置数据结构
python函数

Life is like a box of chocolates that you will never know what you gonna get.

hogwarts = "霍格沃兹" + str(666)

实战题目

0320随堂实战练习题 - 就业班 / 就业班-3期 - 测试人社区 (ceshiren.com)

题目1:

看过《射雕英雄传》的人,可能会记得,黄蓉与瑛姑见面时,曾出过这样一道数学题:今有物不知其数,三三数之剩二,五五数之剩三,七七数之余二,问几何?

要求:请编写一段python代码,找出1到100(包含首尾)之间的所有符合条件的整数。


# 参考题解:for 循环
for i in range(1, 101):
    if i % 3 == 2 and i % 5 == 3 and i % 7 == 2:
        print(f"for符合条件的整数是:{i}")


# 参考题解:while循环
number = 1
while number <= 100:
    if number % 3 == 2 and number % 5 == 3 and number % 7 == 2:
        print(f"while符合条件的整数是:{number}")
    number += 1

题目2:

今有雉兔同笼,上有三十五头,下有九十四足,问雉兔各几何?

这四句话的意思是:有若干只鸡和兔子同在一个笼子里,从上面数,有35个头,从下面数,有94只脚。问:笼中各有多少只鸡和兔?

# 双循环:设鸡有x只,兔有y只
for x in range(36):
    for y in range(36):
        if (x + y) == 35 and (2*x + 4*y == 94):
            print(f"鸡有{x}只,兔有{y}只")

# 单循环:设鸡有x只
for x in range(36):
    if 2*x + 4*(35-x) == 94:
        print(f"单循环:鸡有{x}只,兔有{35-x}只")

题目3:

给定一个四位数字表示年份(1583年~4000年之间),请编写一个函数,找出这年出现次数最多的是星期几,返回数据的给是为列表,元素为英文字符串,并且按照Monday到Sunday的顺序排列。

备注:每周以周一Monday开始。

示例
输入:2022
输出: [‘Thursday’, ‘Friday’]
解释:2022年中星期六的出现次数最多。

提示:

  1. 判断闰年:calendar.isleap(2022)
  2. 判断某一天是周几:calendar.weekday(2022, 1, 1)

def solution(year: int):
# pass

assert solution(2022) == [‘Saturday’]
assert solution(2860) == [‘Thursday’, ‘Friday’]
assert solution(1984) == [‘Monday’, ‘Sunday’]

参考题解:

import calendar

def solution(year):
    
    # 定义一个星期
    weekday = ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"]

    # 求出一年多少天
    days = 366 if calendar.isleap(year) else 365

    # 求出第一天是周几
    begin_index = calendar.weekday(year, 1, 1)

    # 求出余下几天
    rest = days % 7

    # 返回结果
    if rest == 1:
        return [weekday[begin_index]]
    elif rest == 2:
        if begin_index == 6:
            return [weekday[0], weekday[begin_index]]
        else:
            return [weekday[begin_index], weekday[begin_index + 1]]


assert solution(2022) == ['Saturday']
assert solution(2860) == ['Thursday', 'Friday']
assert solution(1984) == ['Monday', 'Sunday']

课堂作业

复习Python面向对象知识,完成练习题:

1、创建一个类【动物类】(Animal)

  • 类里有属性(名称,颜色,年龄,性别)
  • 类方法有:会叫,会跑

2、创建子类【猫】

  • 继承【动物类】,重写父类的__init__方法,继承父类的属性
  • 添加一个新的属性,毛发=短毛
  • 添加一个新的方法, 会捉老鼠,
  • 重写父类的【会叫】的方法,改成【喵喵叫】

3、创建子类【狗】

  • 继承【动物类】,复写父类的__init__方法,继承父类的属性
  • 添加一个新的属性,毛发=长毛
  • 添加一个新的方法, 会看家
  • 重写父类的【会叫】的方法,改成【汪汪叫】

4、在入口函数中创建类的实例

  • 创建一个猫猫实例,调用捉老鼠的方法
  • 打印出:【猫猫的姓名,颜色,年龄,性别,毛发,捉到了老鼠】
  • 创建一个狗狗实例,调用【会看家】的方法
  • 打印出:【狗狗的姓名,颜色,年龄,性别,毛发】