大家好,小编来为大家解答以下问题,大一python基础编程题答案,大一python上机题库及答案,今天让我们一起来看看吧!
一、计算文件大小
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('+-&#