BIG T 下学期选修_python作业

一共提交了10次作业
1,python基础
https://download.csdn.net/download/weixin_42859280/11135380
2,_第二次作业python列表
https://download.csdn.net/download/weixin_42859280/11135386
3,python set dict
https://download.csdn.net/download/weixin_42859280/11135395
3.1:

import random
b_Set=[]
c_Set=[]
i=1000
while(i):
    b_Set.append(random.randint(0,10000))
    i=i-1
i=1000

while(i):
    c_Set.append(random.randint(8000,20000))
    i=i-1
b_Set=set(b_Set)
c_Set=set(c_Set)
print('\n\n交集:')
print(b_Set&c_Set)
print('\n\n并集:')
print(b_Set|c_Set)

print('\n\n差集:')
print(b_Set-c_Set)
print('\n\n对称差集:')
print(b_Set^c_Set)

3.2:

import random
import re
class2={}
t=[]
excellent_grade=[]
excellent_job=[]
i=100
while(i):
    t.append(random.randint(201712101,201712200))
    i=i-1
t.sort()
i=0
while(i<100):
    pp=str(random.choice('赵钱孙李周吴郑王'))+str(random.sample(['菲萱','林帛', '媛舒','初阳','柔凡','初萱','克雪', '淑凡', '岚茹', '芝薇', '颖梦',
                                                         '星初', '濡骏', '骞文', '福烁', '铭骏', '海辰', '运延','运延 ','震驰' ,'鸿晨','强天'],1))
    r='[’!"#$%&\'()*+,-./:;<=>?@[\\]^_`{|}~]+'
    zz=re.sub(r,'',pp)
    class2[t[i]]=zz
    
    i=i+1

for key in class2.keys():
    print('学号:'+str(key)+'  '+'姓名:'+class2[key])

i=10
while(i):
    excellent_grade.append(random.randint(201712101,201712200))
    i=i-1
excellent_grade=set(excellent_grade)
print('\n考试成绩前10名:')
print(excellent_grade)

i=10
while(i):
    excellent_job.append(random.randint(201712101,201712200))
    i=i-1
excellent_job=set(excellent_job)
print('\n活动中表现优异前10名:')
print(excellent_job)


3.3:

import random
t=[]
i=1000
while(i):
    t.append(random.randint(20,100))
    i=i-1
print(t)
print('\n\n')
t.sort()
a={}
for i in t:
    if t.count(i)>1:
        
        a[i]=t.count(i) 
print(a)


4,
https://download.csdn.net/download/weixin_42859280/11135472
猜随机数:

from random import randint


def guess():
    max=randint(0,1000)
    min=randint(-1000,0)#注意区间
    print('欢迎来到猜数游戏,可以输入-9999来退出游戏。')
    print('你所要猜测的数据在:'+str(max)+','+str(min)+' 区间里面')
    result=randint(min,max)
    print('\n偷偷告诉你答案:'+str(result))
    while 1:
        try:
            x=int(input('\n请输入:'))
        except:
            print('请输入正确数据!')
            continue
        if x==-9999:
          break
        elif x==result:
            print('成功!')
            break
        elif x>result:
            print('猜大啦!')
            continue
        elif x

抓狐狸:

'''模拟抓护理小游戏。假设一共有一排5个洞口,小狐狸最开始在其中一个洞口,
 然后玩家随机打开一个洞口,如果里面有狐狸就抓到了,没有狐狸就第二天来抓,
 三十第二天狐狸就会在玩家来抓之前跳到隔壁洞口'''
import random
def catchMe(n=5,maxStep=10):   #五个洞口,最多允许抓十次
        position=[0]*n;            #n个洞口有狐狸就为1,没有狐狸就为0
        oldpos=random.randrange(0,n)
        position[oldpos]=1         #随机给小狐狸一个位置

        #玩家开始抓狐狸
        m=1
        while m<=maxStep:
            #判断输入正确
            print("第{}次".format(m))
            while True :
                try:
                    x=int(input("今天你要开哪个洞口(0-4):"))
                    assert 0<=x<=4          #输入的洞口值要合法,如果不合法抛出异常
                    break
                except:
                    #输入不正确执行下面代码
                    print("请输入正确的洞口")
            #判断有没有找到
            if position[x]==1:
                print("Congratulation!")
                break
            else:
                print("Try again!")
            #小狐狸换洞口,洞口有两个可能,
            if oldpos==0:
                newpos=oldpos+1
            elif oldpos==n-1:#为最后一个洞口
                newpos=0
            else:
                newpos=oldpos+random.choice((-1,1))
            position[oldpos],position[newpos]=0,1   #将位置更新
            m=m+1   #次数+1
        else:
            print("You fail")
catchMe()

5:
链接:
https://download.csdn.net/download/weixin_42859280/11161876
5.1:

import os
def encryption():
  str_raw = input("请输入明文:")
  k = int(input("请输入位移值:"))
  str_change = str_raw.lower()
  str_list = list(str_change)
  str_list_encry = str_list
  i = 0
  while i < len(str_list):
    if ord(str_list[i]) < 123-k:
      str_list_encry[i] = chr(ord(str_list[i]) + k)
    else:
      str_list_encry[i] = chr(ord(str_list[i]) + k - 26)
    i = i+1
  print ("加密结果为:"+"".join(str_list_encry))

encryption()


5.2:

import os
import random
import string
import re
StringBase = '\u7684\u4e00\u4e86\u662f\u6211\u4e0d\u5728\u4eba\u4eec'\
             '\u6709\u6765\u4ed6\u8fd9\u4e0a\u7740\u4e2a\u5730\u5230'\
             '\u5927\u91cc\u8bf4\u5c31\u53bb\u5b50\u5f97\u4e5f\u548c'\
             '\u90a3\u8981\u4e0b\u770b\u5929\u65f6\u8fc7\u51fa\u5c0f'\
             '\u4e48\u8d77\u4f60\u90fd\u628a\u597d\u8fd8\u591a\u6ca1'\
             '\u4e3a\u53c8\u53ef\u5bb6\u5b66\u53ea\u4ee5\u4e3b\u4f1a'\
             '\u6837\u5e74\u60f3\u751f\u540c\u8001\u4e2d\u5341\u4ece'\
             '\u81ea\u9762\u524d\u5934\u9053\u5b83\u540e\u7136\u8d70'\
             '\u5f88\u50cf\u89c1\u4e24\u7528\u5979\u56fd\u52a8\u8fdb'\
             '\u6210\u56de\u4ec0\u8fb9\u4f5c\u5bf9\u5f00\u800c\u5df1'\
             '\u5374\u7ad9\u4ee3\u5458\u673a\u66f4\u4e5d\u60a8\u6bcf'\
             '\u98ce\u7ea7\u8ddf\u7b11\u554a\u5b69\u4e07\u5c11\u76f4'\
             '\u610f\u591c\u6bd4\u9636\u8fde\u8f66\u91cd\u4fbf\u6597'\
             '\u9a6c\u54ea\u5316\u592a\u6307\u53d8\u793e\u4f3c\u58eb'\
             '\u8005\u5e72\u77f3\u6ee1\u65e5\u51b3\u767e\u539f\u62ff'\
             '\u7fa4\u7a76\u5404\u516d\u672c\u601d\u89e3\u7acb\u6cb3'\
             '\u6751\u516b\u96be\u65e9\u8bba\u5417\u6839\u5171\u8ba9'\
             '\u76f8\u7814\u4eca\u5176\u4e66\u5750\u63a5\u5e94\u5173'\
             '\u4fe1\u89c9\u6b65\u53cd\u5904\u8bb0\u5c06\u5343\u627e'\
             '\u4e89\u9886\u6216\u5e08\u7ed3\u5757\u8dd1\u8c01\u8349'\
             '\u8d8a\u5b57\u52a0\u811a\u7d27\u7231\u7b49\u4e60\u9635'\
             '\u6015\u6708\u9752\u534a\u706b\u6cd5\u9898\u5efa\u8d76'\
             '\u4f4d\u5531\u6d77\u4e03\u5973\u4efb\u4ef6\u611f\u51c6'\
             '\u5f20\u56e2\u5c4b\u79bb\u8272\u8138\u7247\u79d1\u5012'\
             '\u775b\u5229\u4e16\u521a\u4e14\u7531\u9001\u5207\u661f'\
             '\u5bfc\u665a\u8868\u591f\u6574\u8ba4\u54cd\u96ea\u6d41'\
             '\u672a\u573a\u8be5\u5e76\u5e95\u6df1\u523b\u5e73\u4f1f'\
             '\u5fd9\u63d0\u786e\u8fd1\u4eae\u8f7b\u8bb2\u519c\u53e4'\
             '\u9ed1\u544a\u754c\u62c9\u540d\u5440\u571f\u6e05\u9633'\
             '\u7167\u529e\u53f2\u6539\u5386\u8f6c\u753b\u9020\u5634'\
             '\u6b64\u6cbb\u5317\u5fc5\u670d\u96e8\u7a7f\u5185\u8bc6'\
             '\u9a8c\u4f20\u4e1a\u83dc\u722c\u7761\u5174\u5f62\u91cf'\
             '\u54b1\u89c2\u82e6\u4f53\u4f17\u901a\u51b2\u5408\u7834'\
             '\u53cb\u5ea6\u672f\u996d\u516c\u65c1\u623f\u6781\u5357'\
             '\u67aa\u8bfb\u6c99\u5c81\u7ebf\u91ce\u575a\u7a7a\u6536'\
             '\u7b97\u81f3\u653f\u57ce\u52b3\u843d\u94b1\u7279\u56f4'\
             '\u5f1f\u80dc\u6559\u70ed\u5c55\u5305\u6b4c\u7c7b\u6e10'\
             '\u5f3a\u6570\u4e61\u547c\u6027\u97f3\u7b54\u54e5\u9645'\
             '\u65e7\u795e\u5ea7\u7ae0\u5e2e\u5566\u53d7\u7cfb\u4ee4'\
             '\u8df3\u975e\u4f55\u725b\u53d6\u5165\u5cb8\u6562\u6389'\
             '\u5ffd\u79cd\u88c5\u9876\u6025\u6797\u505c\u606f\u53e5'\
             '\u533a\u8863\u822c\u62a5\u53f6\u538b\u6162\u53d4\u80cc\u7ec6'

def getNameOrAddress():
    result = ''
    rangestart, rangeend = 2, 5
    for i in range(random.randrange(rangestart, rangeend)):
        result += random.choice(StringBase)
    return result

def getsex():
    return random.choice(('男','女'))
def getage():
    return str(random.randint(0,120))
def getphone():
    return (str(1)+''.join(str(random.randint(0,9)) for i in range(10)))
def getaddress():
    xx=str(random.sample(['北京市','天津市','上海市','重庆市','河北省','山西省','辽宁省','吉林省','黑龙江省','江苏省','浙江省','安徽省','福建省','江西省','山东省','河南省','湖北省','湖南省',
                            '广东省','海南省','四川省','贵州省','云南省','陕西省','甘肃省','青海省','台湾省','内蒙古自治区','广西壮族自治区','西藏自治区','宁夏回族自治区',
                            '新疆维吾尔自治区','香港特别行政','澳门特别行政区'],1))
    r='[’!"#$%&\'()*+,-./:;<=>?@[\\]^_`{|}~]+'
    zz=re.sub(r,'',xx)
    M=''.join(zz)
    return M
def getemail():
    suffix = ['.com', '.org', '.net', '.cn']
    characters = string.ascii_letters+string.digits+'_'
    username = ''.join((random.choice(characters)
                        for i in range(random.randint(6,12))))
    domain = ''.join((random.choice(characters)
                      for i in range(random.randint(3,6))))
    return username+'@'+domain+random.choice(suffix)

tplt = "{:8}\t{:8}\t{:8}\t{:8}\t{:16}\t{:8}"
ff = open('.txt','a')
ff.write(tplt.format("姓名", "性别", "年龄", "电话", "地址", "邮箱"+'\n\n'))
ff.close()
n=0
for i in range(200):
    tplt = "{:8}\t{:8}\t{:8}\t{:8}\t{:16}\t{:8}"
    n=n+1
    name=getNameOrAddress()
    sex=getsex()
    age=getage()
    phone=getphone()
    address=getaddress()
    email=getemail()
    print('成功生成:'+str(n)+'次')

    ff = open('.txt','a')
    ff.write(tplt.format(name,sex,age,phone,address,email+'\n'))
    ff.close()

6:
https://download.csdn.net/download/weixin_42859280/11170370
6.1:
去除以下html文件中的标签,只显示文本信息

import re

print('原来的字符串格式\n')
a=['

岗位职责:

完成推荐算法、数据统计、接口、后台等服务器端相关工作


必备要求:

良好的自我驱动力和职业素养,工作积极主动、结果导向

 

技术要求:

1、一年以上 Python 开发经验,掌握面向对象分析和设计,了解设计模式

2、掌握HTTP协议,熟悉MVC、MVVM等概念以及相关WEB开发框架

3、掌握关系数据库开发设计,掌握 SQL,熟练使用 MySQL/PostgreSQL 中的一种

4、掌握NoSQL、MQ,熟练使用对应技术解决方案

5、熟悉 Javascript/CSS/HTML5,JQuery、React、Vue.js

 

加分项:

大数据,数理统计,机器学习,sklearn,高性能,大并发。

',] print(a) b = ''.join(a) print('\n\n从字符串转变为文本格式\n') print(b) r='[’!"#$%&

\'
()*+,-./:;<=>?@[\\]^_`{|}~]+' zz=re.sub(r,'',b) print('\n\n利用正则表达式剔除标签,得到的文本:\n') print(zz)

6.2:
利用python正则表达式re模块中的sub方法,将标签替换为空字符串

import re

print('原来的字符串格式\n')
a=['

岗位职责:

完成推荐算法、数据统计、接口、后台等服务器端相关工作


必备要求:

良好的自我驱动力和职业素养,工作积极主动、结果导向

 

技术要求:

1、一年以上 Python 开发经验,掌握面向对象分析和设计,了解设计模式

2、掌握HTTP协议,熟悉MVC、MVVM等概念以及相关WEB开发框架

3、掌握关系数据库开发设计,掌握 SQL,熟练使用 MySQL/PostgreSQL 中的一种

4、掌握NoSQL、MQ,熟练使用对应技术解决方案

5、熟悉 Javascript/CSS/HTML5,JQuery、React、Vue.js

 

加分项:

大数据,数理统计,机器学习,sklearn,高性能,大并发。

',] print(a) b = ''.join(a) print('\n\n从字符串转变为文本格式\n') print(b) c = re.sub('<[^<]+?>', '', b).replace('\n', '').strip() print('\n\n利用正则表达式剔除标签,得到的文本:\n') print(c)

6.3:
将以下网址提取出域名:

from urllib.parse import urlparse
urls = ["http://www.interoem.com/messageinfo.asp?id=35`",
          "hhttp://3995503.com/class/class09/news_show.asp?id=14",
          "http://lib.wzmc.edu.cn/news/onews.asp?id=769",
          "http://www.zy-ls.com/alfx.asp?newsid=377&id=6",
          "http://www.fincm.com/newslist.asp?id=415"
          ]
i=0
for url in urls:
    res=urlparse(url)
    print("操作对象:", urls[i])
    print("域名", res.netloc)
    i=i+1

链接:https://download.csdn.net/download/weixin_42859280/11209418

源代码:

class Employee:
    def __init__(self,name,age):
        self.name = name
        self.age = age
        self.ability = 100-age
        line = '姓名:%s'%self.name+'  年龄:%s'%self.age+'  能力值:%s'%self.ability
        #print('\n当前员工信息:%s'%line+'\n')
    def doWork(self):
        if self.ability >= 5:
            self.ability -= 5
            return 5
        else:
            print('员工需要休息')
            return 0
        
        
class BOSS:
    def __init__(self,money,work):
        self.money = money
        self.work = work
        self.employeel = []
    def addEmployee(self,money):
        while self.work != 0:
            if self.money>5000:
                self.employeel.append(employee)
                self.money -= 5000
                self.startWork()
            else:
                 print('抱歉,金额不足时不能雇佣新员工!剩余金钱为:%s\n'%self.money)
            return 0
        
            
    def startWork(self):
       for em in self.employeel:
                print('当前员工姓名为:%s'%employee.name+'  年龄:%s'%employee.age+'  当前能力值:%s'%employee.ability)
                while employee.ability != 0:
                    self.work -= employee.doWork()
                    if self.work == 0:
                        print('该项工作完成结果:成功!\n\n')
                        print('*'*10+'辛苦各位啦!下班啦·'+'*'*10)
                        break
                if self.work != 0:
                    print('该项工作完成结果:失败!')
                    print('剩余工作量:%d\n'%self.work)
                break
    def endWork(self):
        for em in self.employeel:
            print('工作完成!!!\n剩余金钱为:%s\n'%self.money)
            break


b = BOSS(8000,120)

employee = Employee('张飞',30)
b.addEmployee(employee)


employee = Employee('李胖胖',50)
b.addEmployee(employee)


employee = Employee('香娜尔',45)
b.addEmployee(employee)

资源链接:https://download.csdn.net/download/weixin_42859280/11225927
代码:【提交的代码在资源里面】

from os.path import isdir, join, splitext,getsize
from os import remove, listdir, chmod, stat
import sys
import os

filetypes = ['.tmp','.log','.obj','.txt']

def delcc(dictory):
    if not isdir(dictory):
        print('not a dict...')
        return
    for filename in listdir(dictory):
        temp = join(dictory,filename)
        if isdir(temp):
            delcc(temp)
        elif splitext(temp)[1] in filetypes or getsize(temp)==0:
            remove(temp)
            print(temp,'delted...')

dictory = r'E:'
delcc(dictory)

资源链接:https://download.csdn.net/download/weixin_42859280/11219262
代码:【提交的代码在资源里面】

from random import choice, randint
from openpyxl import Workbook, load_workbook

#生成随机数据
def create(filename):
    workbook = Workbook()
    worksheet = workbook.worksheets[0]
    worksheet.append(['姓名','课程','成绩'])
#中文名字中的第一、第二、第三个字
    first = '赵钱孙李周吴郑王冯陈褚卫'
    middle = '伟昀琛东大江东去浪淘尽'
    last = '坤艳志千古风流人物人说三国赤壁'
    subjects = ('语文','数学','英语')
    for i in range(200):
        name = choice(first)
        #按一定概率生成只有两个字的中文名字
        if randint(1,100)>60:
            name = name + choice(middle)
        name = name + choice(last)
        print(name)
        #依次生成姓名、课程名称和成绩
        worksheet.append([name, choice(subjects), randint(0, 100)])
    #保存数据,生成 Excel 2007 格式的文件
    workbook.save(filename)
def getResult(oldfile, newfile):
    #用于存放结果数据的字典
    result = dict()
    #打开原始数据
    workbook = load_workbook(oldfile)#打开文件操作!
    worksheet = workbook.worksheets[0]
    #遍历原始数据
    for row in worksheet.rows:
        if row[0].value == '姓名':
            continue
        #姓名,课程名称,本次成绩
        name, subject, grade = map(lambda cell:cell.value, row)
        #获取当前姓名对应的课程名称和成绩信息
        #如果 result 字典中不包含,则返回空字典
        t = result.get(name, {})
        #获取当前学生当前课程的成绩,若不存在,返回 0
        f = t.get(subject, 0)
        #只保留该学生该课程的最高成绩
        if grade > f:
            t[subject] = grade
            result[name] = t
    workbook1 = Workbook()
    worksheet1 = workbook1.worksheets[0]
    worksheet1.append(['姓名','课程','成绩'])
    #将 result 字典中的结果数据写入 Excel 文件
    for name, t in result.items():
        print(name, t)
        for subject, grade in t.items():
            worksheet1.append([name, subject, grade])
    workbook1.save(newfile)
if __name__ == '__main__':
    oldfile = r'C:\Users\HWP\Desktop\python作业表格\test.xlsx'
    newfile = r'C:\Users\HWP\Desktop\python作业表格\result.xlsx'
    create(oldfile)
    getResult(oldfile, newfile)

少写一个打字的:

def Rate(origin, userInput):
    if not (isinstance(origin, str) and isinstance(userInput, str)):
        return 'The two parameters must be strings.'
    if len(origin)=80:
    print('成绩优秀,百尺竿头更进一步!')
elif Rate(a,b)*100 >=60:
    print('成绩良好,多加练习变成优秀!')
else:
    print('多加练习,逃离新手区~~!')

你可能感兴趣的:(python,Python语言及其应用学习!)