大一新生必备的Python十二道编程题目,码住战胜一切(bushi)

一、计算文件大小

import os
def get_size(path):
    size = 0
    l = [path]
    while l:
        path = l.pop()
        lst = os.listdir(path)
        for name in lst:
            son_path = os.path.join(path,name)
            if os.path.isfile(son_path):
                size += os.path.getsize(son_path)
            else:
                l.append(son_path)
    return size

size = get_size(r'D:\s14\算法')
print(size)

二、三级菜单

l = [menu]
while l:
    for k in l[-1]:
        print(k)
    key = input('>>>')
    if key.upper() == 'B':
        l.pop()
    elif key.upper() == 'Q':
        l.clear()
    elif l[-1].get(key):
        l.append(l[-1][key])

三、文件监听

def func():
    with open('test.txt', 'r+', encoding='utf-8') as f:
        while 1:
            lens = f.readline()
            if lens:
                yield lens
t = func()
for j in t:
    print(j)

四、发红包

import random

def rea_pac(money,num):
    ret = random.sample(range(1,money*100),num-1)
    print(ret)
    ret.sort()
    ret.insert(0,0)
    ret.append(money*100)
    for i in range(len(ret)-1):
        value = ret[i+1] - ret[i]
        yield value/100
g = rea_pac(200,10)
for i in g:
    print(i)

五、递归问路

lis = ['alex','wusir','yuanhao','linhaifeng','henry']

def inner(name):
    if len(name) == 0:
        return '没有找到路'
    res = lis.pop(0)
    if res == 'henry':
        return '%s说:我知道老男孩就在沙河地铁站附近'%res
    print('hi美男%s敢问路在何方'%res)
    print('%s回答道,我也不知道,我帮你问问%s'%(res,lis))
    f = inner(lis)
    return f
print(inner(lis))

找到路后会把结果返回给上一个调用者’linhaifeng’
‘linhaifeng’会把结果返回给上一个调用者’yuanhao’…
最终会把结果返回给最开始的调用者inner

六、人狗大战

import random
import time

定义一个人的类

class Person:
    # 定义人的静态属性
    def __init__(self,name,hp,ad,sex):
        self.name = name
        self.ad = ad
        self.hp = hp
        self.sex = sex
    # 定义人的方法
    def da(self,dog):
        yy = random.randint(1,self.ad)
        dog.hp -= yy
        print('%s使用%s,打了%s,%s掉了%s点血'%(self.name,arms.name,dog.name,dog.name,yy))
        if dog.hp < 50:
            print("{}使用终极必杀技{}".format(dog.name,arms.skill()))

定义一个狗的类

class Dog:
    # 定义狗的静态属性
    def __init__(self,name,hp,ad,kind):
        self.name = name
        self.hp = hp
        self.ad = ad
        self.kind = kind
    # 定义狗的方法
    def yao(self,person):
        uu = random.randint(1,self.ad)
        person.hp -= uu
        print('%s咬了%s,%s掉了%s点血' % (self.name, person.name, person.name,uu))
        if person.hp < 50:
            print("{}使用终极必杀技{}".format(person.name,arms.skill()))

定义一个武器类

class Arms:
    def __init__(self,name,hp,ad):
        self.name = name
        self.hp = hp
        self.ad = ad
    # 定义一个武器的技能
    def skill(self):
        li = ['飞龙在天','乾坤大挪移','九阳神功']
        f = random.choice(li)
        return f
arms = Arms('铁锹',3000,2000)
henry = Person('henry',500,30,'男')
dog = Dog('大黄',300,30,'哈士奇')
c = 1
while dog.hp > 0:

    print('第{}回合'.format(c))
    dog.yao(henry)
    henry.da(dog)
    time.sleep(1)
    c +=1

七、计算器

import re
express = '1-2*((60-30+(9-2*5/3+7/3*99/4*2998+10*568/14)*(-40/5))-(-4*3)/(16-3*2))'
express = express.replace(' ','')

计算

def cout(exp):
    if '*' in exp:
        a,b = exp.split('*')
        return str(float(a) * float(b))
    else:
        a, b = exp.split('/')
        return str(float(a) / float(b))

表达式的符号管理把++变成+,–变成-,±变成-,-+变成-

def format_exp(exp):
    exp = exp.replace('++','+')
    exp = exp.replace('+-','-')
    exp = exp.replace('--','+')
    exp = exp.replace('-+','-')
    return exp

计算所有的乘除法

def cal_no(res):
    while True
  • 0
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值