python(三)训练题带解析

python60题(三)
文件操作题,要求每个文件读或写完成后,必须调用close函数,不能只有open没有close!
一、让用户输入账号和密码,程序将信息依次记录成字符串(要有换行),格式为:
帐号:xxx
密码:xxxxxx
不断地执行以上操作,直到输入"0"为止,结束后将所有帐号和密码信息保存到一个info.txt 文件中,存放在桌面
In [ ]:

import os
if not os.path.exists("F:/info.txt "):
f = open("F:/info.txt ",‘w’)
f.close()
f = open("F:/info.txt ",‘r’)
infos = f.read()
f.close()
infos = ‘’
while 1:
id = input(“请输入帐号,输入0结束”)
if id == ‘0’:
break
pwd = input(“请输入密码”)
a =’\n’
infos += ‘账号’ + id +‘密码’ +pwd +a
f = open(“F:/info.txt”,‘w’)
f.write(infos)
f.close()
二、假设桌面有五个文件:data1.txt,data2.txt,…data5.txt(可手动创建),每个文件分别记录了一些内容(自定),编写程序,生成一个data.txt文件,内容为五个文件的所有内容合并(每个文件的内容之间用换行隔开)。
In [ ]:

import os
#首先创立一个文件:data.txt,并且写入a
if not os.path.exists(“C:/Users/DELL/Desktop/data.txt”):
f = open(“C:/Users/DELL/Desktop/data.txt”,‘w’)
f.close()
f = open(“C:/Users/DELL/Desktop/data.txt”,‘r’)
a = f.read()
f.close()
#把文件内容写入b,下同
k = open(“C:/Users/DELL/Desktop/data1.txt”,‘r’)
b = k.read()
k.close()

h = open(“C:/Users/DELL/Desktop/data2.txt”,‘r’)
c = h.read()
h.close()
p = open(“C:/Users/DELL/Desktop/data3.txt”,‘r’)
j = p.read()
p.close()

g = open(“C:/Users/DELL/Desktop/data4.txt”,‘r’)
d = g.read()
g.close()

l = open(“C:/Users/DELL/Desktop/date5.1.txt”,‘r’)
e = l.read()
l.close()
#这里我们确定了一个换行h,然后把所有东西加到a里面,写进去
h = ‘\n’
a+= b + h + h
a+= c + h + h
a+= j + h + h
a+= d + h + h
a+= e + h + h
f = open(“C:/Users/DELL/Desktop/data.txt”,‘w’)
f.write(a)
f.close()
三、实现复制文本文件,可以指定一个文本文件,和复制到哪个路径
In [ ]:

import os

kname = input(“请输入要复制的文件路径”)
path = input(“请输入要复制到哪个位置”)
if not os.path.exists(path):
f = open(path,‘w’)
f.close()

print(kname)
f = open(kname,‘r’)
a =f.read()
f.close()

f = open(path,‘r’)
b =f.read()
f.close()

b += a

f = open(path,‘w’)
f.write(b)
f.close()

四、创建多级目录。在桌面创建文件夹,名为“一级目录”,再在此目录下再创建“二级目录”文件夹,再在此目录下创建“三级目录”文件夹。
要求每次创建都要先判断此目录是否存在,以保证程序重复运行也不会报错
In [ ]:

import os

a =‘C:/Users/Administrator/Desktop/一级目录’
if not os.path.exists(a):
os.mkdir(a)#第一个没s
a =‘C:/Users/Administrator/Desktop/一级目录/二级目录’
if not os.path.exists(a):
os.makedirs(a)
a =‘C:/Users/Administrator/Desktop/一级目录/二级目录/三级目录’
if not os.path.exists(a):
os.makedirs(a)

五、新建一个文件夹files,内有10个文件,名字为1.txt,2.txt,…,10.txt,内容为空(可手动操作)。
编写程序,将文件夹内所有文件依次重命名为text1.txt,text2.txt,…,text10.txt
In [ ]:

import os

a1 = ‘C:/Users/Administrator/Desktop/files/1.txt’
a2 = ‘C:/Users/Administrator/Desktop/files/2.txt’
a3 = ‘C:/Users/Administrator/Desktop/files/3.txt’
a4 = ‘C:/Users/Administrator/Desktop/files/4.txt’
a5 = ‘C:/Users/Administrator/Desktop/files/5.txt’
a6 = ‘C:/Users/Administrator/Desktop/files/6.txt’
a7 = ‘C:/Users/Administrator/Desktop/files/7.txt’
a8 = ‘C:/Users/Administrator/Desktop/files/8.txt’
a9 = ‘C:/Users/Administrator/Desktop/files/9.txt’
a10 = ‘C:/Users/Administrator/Desktop/files/10.txt’

b1 = “C:/Users/Administrator/Desktop/files/text1.txt”
b2 = “C:/Users/Administrator/Desktop/files/text2.txt”
b3 = “C:/Users/Administrator/Desktop/files/text3.txt”
b4 = “C:/Users/Administrator/Desktop/files/text4.txt”
b5 = “C:/Users/Administrator/Desktop/files/text5.txt”
b6 = “C:/Users/Administrator/Desktop/files/text6.txt”
b7 = “C:/Users/Administrator/Desktop/files/text7.txt”
b8 = “C:/Users/Administrator/Desktop/files/text8.txt”
b9 = “C:/Users/Administrator/Desktop/files/text9.txt”
b10 = “C:/Users/Administrator/Desktop/files/text10.txt”

os.rename(a1, b1)
os.rename(a2, b2)
os.rename(a3, b3)
os.rename(a4, b4)
os.rename(a5, b5)
os.rename(a6, b6)
os.rename(a7, b7)
os.rename(a8, b8)
os.rename(a9, b9)
os.rename(a10, b10)

六、列出你的电脑C盘下第一层的所有文件和文件夹
In [ ]:

import os
fire = os.listdir(“c:”)
print(fire)
七、新建一个文件夹files,内有数个后缀名不同的文件(可手动操作)
编写程序,将后缀名不是.txt的文件全部删除
提示:使用os.listdir获取文件夹下所有文件的路径名称,再遍历处理
In [ ]:

import os
fires =“C:/Users/DELL/Desktop/fires”
date = os.listdir(fires)
for i in date:
if i[-3:]!= ‘txt’:
p = fires+’/’+i#加斜杠注意是这个
print§
os.remove§
类和对象练习

class Animal(object):
def init(self,a,b):#self,后面有多少个到时候输入的时候就要输入多少个
self.type = a
self.cry = b

def info(self):
     s ="我是{},我这样叫{}"
     print(s.format(self.type,self.cry))

s1 = Animal(“我是giao哥”,“1giaowoliegiaogaio”)
s1.info()

#编写鸟类Bird,猫类Cat,狗类Dog,它们都继承Animal类,初始化种类分别为bird、cat、dog
class Bird(Animal):
def init(self):
super().init(‘bird’,‘jiji’)#相当于在上面的函数s1 =Animmal里加入进去

class Cat(Animal):
def init(self):
super().init(‘cat’,‘meow’)

class Dog(Animal):
def init(self):
super().init(‘asfas’,‘asdfas’)

#分别创建一个鸟,猫,狗对象,调用它们的介绍函数
a = Bird()
a.info()
b = Cat()
b.info()
c = Dog()
c.info()
#编写燕子类,继承鸟类,添加一个属性:子类型(subtype)。燕子的子类型为’swallow’。
#重写燕子的介绍函数,打印:我是xxx,属于yyy,我的叫声是zzz,其中xxx是子类型,yyy是类型,zzz是叫声
class swallow(Bird):
def init(self):
self.subtybe = ‘swallow’#这个是新加入的类型:swalow燕子
super().init()#继承bird的类型和叫声,()括号内不写东西代表继承全部
def bili(self):
print(“我是”+self.subtybe+“属于”+self.type+“我的叫声是”+self.cry)
s = swallow()
s.bili()

#十二、编写三角形类Triangle,初始化三个属性,分别是三条边的长度,定义一个计算并打印周长的函数
#十三、编写等腰三角形类EWtriangle,继承于三角形类,初始化只用传一个腰长和一个底长,定义一个计算高的函数
#十四、编写等边三角形类EStriangle,继承于等腰三角形类,初始化只用传一条边长,定义一个计算面积的函数,其中高的长度调用以上函数可获取
#十五、编写直角三角形类EAtriangle,继承于三角形类,初始化只传两条直角边的长度,第三条通过勾股定理计算得到,定义计算面积的函数
#由于题目仅需要定义所以,就不赋值了,需要的话把下面函数前的#去掉严重和理解
class Triangle(object):
def init(self,a,b,c):
self.a=a
self.b=b
self.c=c
def abb(self):
c = int(self.a) + int(self.b) + int(self.c)
print(“周长”,c)
#s = Triangle(“5”,“5”,“5”)
#s.abb()
class EWtriangle(Triangle):
def init(self,a,b):
super().init(a,a,b)

def bibi(self):
        h = int(self.b) / 2
        k = int(self.a) ** 2 - h ** 2
        h2 = k ** 0.5
        print("高",h2)
        return h2

#s1 = EWtriangle(“5”,“5”)
class EStriangle(EWtriangle):
def init(self,a):
super().init(a,a)
def sss(self):
s = int(self.a) * float(self.bibi())/2#这里的float(self.bibi()是上面函数计算的高输入的话上面的边长也需要严格输入
print(“面积”,s)
#a = EStriangle(“5”)
#a.sss()
class EAtriangle(Triangle):
def init(self,a,b):
c = (int(a)**2 + int(b)**2) ** 0.5
super().init(a,b,c)
print©

#s = EAtriangle(“5”,“8”)

创建一个列表,创建5个学生对象,属性如下:
小红,1,80,77,85
小黑,1,68,88,82
小黄,1,70,83,78
小蓝,1,80,90,75
小金,1,78,91,83
将所有学生对象放入列表,程序通过遍历学生列表计算输出总分最高的学生的名字、班级和总分
In [ ]:

class Student(object):
def init(self,name,year,a,b,c):
self.name =name
self.year =year
self.a = a
self.b = b
self.c = c
def people(self):
m =0
if int(self.b)+int(self.b) > m:
m = int(self.b)+int(self.b)
print(self.name,self.year,m)

s1 = Student(‘小红’,1,80,77,85)
s2 = Student(‘小黑’,1,68,88,82)
s3 = Student(‘小黄’,1,70,83,78)
s4 = Student(‘小蓝’,1,80,90,75)
s5 = Student(‘小金’,1,78,91,83)
s1.people()
s2.people()
s3.people()
s4.people()
s5.people()

以下为一个有理数类,一个有理数由分子和分母组成,目前定义了一个输出函数
十七、编写一个加法函数,可以接收另一个有理数,与自身的值相加
十八、编写一个乘法函数,同理接收另一个有理数,与自身的值相乘
十九、编写一个判断相等函数,接收另一个有理数,返回自身与这个有理数的大小关系
二十、创建几个有理数 a:3/4,b:4/5,c:5/6,d:1
对a进行操作:与b相加,再与c相乘,最后与d比较大小
In [ ]:

from fractions import Fraction#以分数的形式计算
class Rational(object):
def init(self,zi,mu):
self.zi = zi #分子
self.mu = mu #分母
#打印这个有理数
def print_rational(self):
f =Fraction(str(self.zi) + ‘/’ + str(self.mu))
print(f)
#与另一个有理数相加
def add(self,a):
f1 = Fraction(str(self.zia.mu+a.ziself.mu)+’/’+str(self.mu*a.mu))
print(f1)

#与另一个有理数相乘
def multi(self,b):
    f = Fraction(str(self.zi*b.zi) + '/' + str(self.mu*b.mu))
    print(f)
#与另一个有理数比较大小
def comp(self,c):
    f =Fraction(str(self.zi) + '/' + str(self.mu))
    f1 =Fraction(str(d.zi)+'/'+str(d.mu))
    if f > f1:
        print(f, '>',  f1 )
    elif f < f1:
        print(f, '<',  f1)
    else:
        print(f,  '=',  f1)

a = Rational(3, 4)
b = Rational(4, 5)
c = Rational(5, 6)
d = Rational(1, 1)
a.print_rational()#打印a
a.add(b)#############睁开眼睛看看哦!!!!!!!!括号里面是B前面是a,函数接受了b的值,同时继承了a的取值
a.multi©
a.comp(d)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

南师大蒜阿熏呀

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值