领航团Python速成营实战作业

**

领航团Python速成营

**
课程链接:https://aistudio.baidu.com/aistudio/course/introduce/7073
**

作业一

**
1. 输入两个整数,并打印出它们的和

a = input('请输入第一个整数: ')
b = input('请输入第二个整数: ')
# 分别把 a、b 转换成整数
a=int(a)
b=int(b)
# 计算 a、b 的和,赋值给变量c
c=a+b
# 打印c
print(c)

**
2. 输入两个整数,如果两个整数之和小于100,则输出 ‘小于100’,否则输出 '不小于100’

    a = input('请输入第一个整数: ')
    b = input('请输入第二个整数: ')
    a=int(a)
    b=int(b)
    c=a+b
    if c<100:
        print('小于100')
    else:
        print('不小于100')

**
3. 输入两组姓名和年龄,然后存入一个字典,并输出

name1 = input('请输入第一个姓名: ')
age1= input('请输入第一个年龄: ')
name2 = input('请输入第二个姓名: ')
age2 = input('请输入第二个年龄: ')
# 分别把age1和age2转成整数
age1=int(age1)
age2=int(age2)
# 构造字典dict_name
dict_name = {name1:age1,name2:age2}
# 打印字典
print(dict_name)

**
4. 依次输入10组整数,然后求和,并输出

sum_num = 0
for i in range(10):
    # 用input输入数字并转化为整数
    i=input('请输入10组整数:')
    i=float(i)
    i=int(i)
    sum_num=sum_num+i
print(sum_num)

)

**


**

## 作业二

**
**1. 选取列表的第2到第5项,并打印**
**

```python
words = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h']
# 选取第2-5项,并打印
words[2:6]

**
2. 使用列表生成式的方法,根据 list1 生成 list2
list1 = [1, 2, 3, 4, 5, 6, 7, 8]
list2 = [100, 200, 300, 400, 500, 600, 700, 800]

**

list1 = [1, 2, 3, 4, 5, 6, 7, 8]

# 列表推导式生成list2list2=[n*100 for n in list1]
print(list2)

**

3. 把下列字符串按下划线(’_’)划分成若干个片段
string1 = ‘this_is_a_sample’

# 生成按’_'划分的字符串列表,即下列内容
[‘this’, ‘is’, ‘a’, ‘sample’]
**
程序如下:

string1 = 'this_is_a_sample'
# 按'_'划分string1
string1.split('_')

**

作业三

**
作业内容
统计英语6级试题中所有单词的词频,并返回一个如下样式的字典

{‘and’:100,‘abandon’:5}

**

英语6级试题的文件路径./artical.txt

**

Tip: 读取文件的方法

def get_artical(artical_path):
    with open(artical_path) as fr:
        data = fr.read()
    return data

get_artical('./artical.txt')

**

处理要求

(a) '\n’是换行符 需要删除

**
(b) 标点符号需要处理
[’.’, ‘,’, ‘!’, ‘?’, ‘;’, ‘’’, ‘"’, ‘/’, ‘-’, ‘(’, ‘)’]

**
© 阿拉伯数字需要处理
[‘1’,‘2’,‘3’,‘4’,‘5’,‘6’,‘7’,‘8’,‘9’,‘0’]

**
(d) 注意大小写 一些单词由于在句首,首字母大写了。需要把所有的单词转成小写
‘String’.lower()

**
(e) 高分项
通过自己查找资料学习正则表达式,并在代码中使用(re模块)

可参考资料:https://docs.python.org/3.7/library/re.html

**

# 请根据处理要求下面区域完成代码的编写。
def get_artical(artical_path):
    with open(artical_path) as fr:
        data = fr.read()
    return data
# get_artical()为自定义函数,可用于读取指定位置的试题内容。
# get_artical('./artical.txt')

mystr=get_artical('./artical.txt')

mystr=mystr.lower()

str1=['.', ',', '!', '?', ';', '\'', '\"', '/', '-', '(', ')']
str2=['1','2','3','4','5','6','7','8','9','0']
for ch in str1:
    mystr=mystr.replace(ch," ")
for ch in str2:
    mystr=mystr.replace(ch," ")

words=mystr.split()
counts={}
for w in words:
    if w!=' ':
        counts[w]=counts.get(w,0)+1
for key in counts:
    print("{},{}".format(key, counts[key]))

**

作业六

#第一题(30分)
数据如下:

stu1.txt 孙同学,2020-5-21,20,‘男’,77,56,77,76,92,58,-91,84,69,-91
stu2.txt 赵同学,2020-11-3,24,‘女’,65,68,72,95,-81,71,86,91,57,91
stu3.txt 王同学,2021-8-7,25,‘男’,87,78,90,-76,88,47,100,65,69,100
stu4.txt 李同学,2021-8-10,29,‘男’,92,54,85,71,-91,68,77,68,95,95
以上四个txt文档在work路径下可以找到。

定义Student类,包括name、dob、age、gender和score属性,包括top3方法用来返回学生的最大的3个成绩(可重复)、sanitize方法用来将负的分数变为正的分数,负的分数可能是输入错误。声明stu_list对象组数用于存储所有的学生对象。最后输出所有的学生信息包括姓名、生日、年龄、性别、最高的3个分数。

第一题的输出结果如下,供参考:
在这里插入图片描述

# 请在此处完成代码
def opentext(txt):
    with open(txt) as f:
        line = f.readline()
        # print(line.strip().split(','))
    return line.strip().split(',')

      
class Student():
    def __init__(self, name, dob, age, gender, score):
        self.name = name
        self.dob = dob
        self.age = age
        self.gender = gender
        self.score = score

    def name(self):
        return self.name

    def dob(self):
        return self.dob
    
    def age(self):
        return self.age

    def gender(self):
        return self.gender

    def top3(self):
        newlist = []
        for t in self.score:
            t = int(t)
            if t < 0 :
                t = -t
            newlist.append(t)
        return sorted(newlist)[::-1][:3]
            

def printf(textname):
    txtlist = opentext(textname)
    name = txtlist.pop(0)
    dob = txtlist.pop(0)
    age = txtlist.pop(0)
    gender = txtlist.pop(0)
    student = Student(name, dob, age, gender, txtlist)
    # print(student.name)a
    print(f'姓名:{student.name} 生日:{student.dob} 年龄:{student.age} 性别:{student.gender} 分数:{student.top3()}')


printf('work/stu1.txt')
printf('work/stu2.txt')
printf('work/stu3.txt')
printf('work/stu4.txt')

输出结果为:
姓名:孙同学 生日:2020-5-21 年龄:20 性别:‘男’ 分数:[92, 91, 91]
姓名:赵同学 生日:2020-11-3 年龄:24 性别:‘女’ 分数:[95, 91, 91]
姓名:王同学 生日:2021-8-7 年龄:25 性别:‘男’ 分数:[100, 100, 90]
姓名:李同学 生日:2021-8-10 年龄:29 性别:‘男’ 分数:[95, 95, 92]

第二题(30分)
数据格式如下:

stu5.txt 特长同学,2020-10-5,20,‘男’,180,87,98,77,76,92,58,-76,84,69,-47
stu6.txt 特长同学,2020-10-6,20,‘女’,230,76,48,82,88,92,58,-91,84,69,-68
以上两个txt文档在work路径下可以找到。

定义Spostudent、Artstudent为Student的子类,在子类的属性里面新增了spe为特长分数。Spostudent包括的top3方法返回的是最低的3个得分(可重复),Artstudent包括top3方法返回的是最高的3个得分(可重复),最后使用多态的方式输出2个特长同学的姓名、生日、年龄、性别、分数、特长分。

第二题的输出结果如下,供参考:在这里插入图片描述

# 请在此处完成代码
class Spostudent(Student):
    def __init__(self, name, dob, age, gender, score, spe):
        Student.__init__(self, name, dob, age, gender, score)
        self.spe = spe

    def spe(self):
        return self.spe
    
class Artstudent(Student):
    def __init__(self,  name, dob, age, gender, score):
        Student.__init__(self, name, dob, age, gender, score)
    
    def top3(self):
        newlist = []
        for t in self.score:
            t = int(t)
            if t < 0 :
                t = -t
            newlist.append(t)
        return sorted(newlist)[0:3]

def printf(text,a):
    txtlist = opentext(text)
    name = txtlist.pop(0)
    dob = txtlist.pop(0)
    age = txtlist.pop(0)
    gender = txtlist.pop(0)
    spe = txtlist.pop(0)
    spostudent = Spostudent(name, dob, age, gender, txtlist, spe)
    artstudent = Artstudent(name, dob, age, gender, txtlist)
    if a == 0:
        a = spostudent.top3()
    else:
        a = artstudent.top3()
    print(f'姓名:{spostudent.name} 生日:{spostudent.dob} 年龄:{spostudent.age} 性别:{spostudent.gender} 分数:{a} 特长分:{spostudent.spe}')

        
#printf('work/stu5.txt', 1)
#('{spostudent.gender} 分数:{a} 特长分:{spostudent.spe}')

        
printf('work/stu5.txt', 1)
printf('work/stu6.txt', 0)

输出结果为:
姓名:特长同学 生日:2020-10-5 年龄:20 性别:‘男’ 分数:[56, 58, 69] 特长分:180
姓名:特长同学 生日:2020-10-6 年龄:20 性别:‘女’ 分数:[92, 91, 91] 特长分:230

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值