当前位置: 首页 > news >正文

【Python练习】task-08 综合练习

1.已知1800年1月1日是星期三。输入一个日期,使用自定义函数计算是星期几

说明:关于日期和时间有专门的包操作。这里不用,自己设计计算

import datetime
import re
def date_time(year,month,day):
    return datetime.date(year,month,day).isoweekday()
times=input("输入时间****-**-**")
str=re.split("[/\-,]",times)
year=int(str[0])
month=int(str[1])
day=int(str[2])

print(times,"是星期",date_time(year,month,day))

2.题目要求:输入英文字母,输出星期几。

解析:输入星期几的英语单词的第一个字母,输出星期几。
(1)如果有星期几的第一个字母相同,则继续输入第二个字母。
(2)循环操作,直到输入q或Q则退出程序。

def yue1(yy):
    if yy in ['m','M']:
        print("星期一")
    elif yy in ['w','W']:
        print("星期三")
    elif yy in ['f','F']:
        print("星期五")

def yue2(yy):
    yy2=input('请输入第二个字母:')
    if yy in ['t','T']:
        if yy2=='u' or yy2=='U':
            print('星期二')
        elif yy2 in ['h','H']:
            print('星期四')
        elif yy2 in ['q','Q']:
            return True
        else :
            print('没有相匹配的,第二个字母就不匹配')
            yue2(yy)
    else:
        if yy2=='u' or yy2=='U':
            print('星期日')
        elif yy2 in ['a','A']:
            print('星期六')
        elif yy2 in ['q','Q']:
            return True
        else :
            print('没有相匹配的,第二个字母就不匹配')
            yue2(yy)

def fun():
    while(True):
        yy=input("请输入第一个字母:")
        if yy in ['q','Q']:
            print('退出成功!')
            break
        elif yy in ['m','M','w','W','f','F',]:
            yue1(yy)
        elif yy in ['t','T','s','S'] :
            if yue2(yy):
                print('退出成功!')
                break
        else :
            print('第一个字母不匹配')

#调用该主体函数
fun()
        

3. 输入一个数n,生成n个1到100之间的随机整数,写入文件中。(每个数一行)

import random 
n= int(input("请输入一个1到100间的数:"))
rnd = [0]*n
for i in range(n):
    rnd[i] = random.randint(0, 100)
print(rnd)

4.从文件中读取数据(第3题中的文件),使用归并排序或快速排序进行排序,然后写入另外一个文件中

def quick_sort(array, start, end):
    if start >= end:
        return
    mid_data, left, right = array[start], start, end
    while left < right:
        while array[right] >= mid_data and left < right:
            right -= 1
        array[left] = array[right]
        while array[left] < mid_data and left < right:
            left += 1
        array[right] = array[left]
    array[left] = mid_data
    quick_sort(array, start, left-1)
    quick_sort(array, left+1, end)



df = open("E:\学习\代码\Python_homework\data.txt")
list1 = []
for i in df:
    list1.append([int(x) for x in i.split()])
quick_sort(list1, 1, len(list1)-1)
f = open("E:\学习\代码\Python_homework\data1.txt",'a+')

for i in range(1, len(list1)):
    f.write('{}'.format(list1[i]))
    f.write('\n')
f.close()

5.把如下数据写入文件,然后从文件中读取数据,绘制两行数据对应的图

from matplotlib import pyplot as plt
x=[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29]
y=[20, 21, 23, 28, 36, 45, 57, 69, 85, 102, 120, 138, 161, 190, 216, 246, 276, 310, 343, 381, 418, 459, 505, 549, 596, 645, 697, 750, 805, 862]
plt.figure(figsize=(20,8),dpi=80)
plt.scatter(x,y)
plt.show()

6.接着第5题。上述x和y其实是在y=20+x2函数上的一个近似。根据x的值和函数y=20+x2,计算y_new,算出y_new和y的差,记为delta_y。

绘制x和delt_y的点图,并计算y的方差。有关方差的计算参阅数学资料。

from matplotlib import pyplot as plt
import numpy as np

x=[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29]
y=[20, 21, 23, 28, 36, 45, 57, 69, 85, 102, 120, 138, 161, 190, 216, 246, 276, 310, 343, 381, 418, 459, 505, 549, 596, 645, 697, 750, 805, 862]

x=np.array(x)
y=np.array(y)
y_new=x*x+20
delta_y=y_new-y

#求y的方差
Dy=np.sum((y-np.mean(y))*(y-np.mean(y)))/(y.shape[0]-1)
print(f"y的均值为{np.round(np.mean(y),3)},方差为",np.round(Dy,3))

#求delta_y的方差
DDelta_y=np.sum((delta_y-np.mean(delta_y))*(delta_y-np.mean(delta_y)))/(delta_y.shape[0]-1)
print(f"delta_y的均值为{np.round(np.mean(delta_y),3)},方差为",np.round(DDelta_y,3))

#绘制散点图
#设置大小
plt.figure(figsize=(20,8),dpi=80)
#散点图
plt.scatter(x,delta_y)
#展示
plt.show()

相关文章:

  • 利用pe系统重装电脑
  • HW面试题
  • python自动化小技巧08——从剪贴板读取数据(快速复制粘贴)
  • 【Linux】之Jumpserver堡垒机的部署/搭建
  • 学习信奥要不要先学python
  • Yolov7训练自己的数据集(超详细)
  • 常见网络知识面试题总结
  • 当前行情下,真的还能“跳进”进大厂吗?
  • Vue入门【五】-- 组件通信
  • Golang并发-Go优雅的退出程序(同步等待组 sync.WaitGroup)
  • 520.检测大写字母
  • 分位数回归的求解
  • Hadoop 完全分布式(3.1.3)部署(清爽版)
  • 【.Net实用方法总结】 整理并总结文件和流、异步文件IO、处理IO错误
  • LeetCode力扣刷题——千奇百怪的排序算法
  • 10个确保微服务与容器安全的最佳实践
  • ES6 ...操作符
  • js如何打印object对象
  • nodejs调试方法
  • Objective-C 中关联引用的概念
  • Python3爬取英雄联盟英雄皮肤大图
  • RxJS 实现摩斯密码(Morse) 【内附脑图】
  • Spring Boot MyBatis配置多种数据库
  • swift基础之_对象 实例方法 对象方法。
  • Vim Clutch | 面向脚踏板编程……
  • vue-router 实现分析
  • vue脚手架vue-cli
  • Vue实战(四)登录/注册页的实现
  • WinRAR存在严重的安全漏洞影响5亿用户
  • 复习Javascript专题(四):js中的深浅拷贝
  • 基于Volley网络库实现加载多种网络图片(包括GIF动态图片、圆形图片、普通图片)...
  • 如何优雅地使用 Sublime Text
  • 深入 Nginx 之配置篇
  • 数据库写操作弃用“SELECT ... FOR UPDATE”解决方案
  • 写给高年级小学生看的《Bash 指南》
  • d²y/dx²; 偏导数问题 请问f1 f2是什么意思
  • ​configparser --- 配置文件解析器​
  • (6)设计一个TimeMap
  • (二)Pytorch快速搭建神经网络模型实现气温预测回归(代码+详细注解)
  • (附源码)spring boot儿童教育管理系统 毕业设计 281442
  • (论文阅读11/100)Fast R-CNN
  • (亲测成功)在centos7.5上安装kvm,通过VNC远程连接并创建多台ubuntu虚拟机(ubuntu server版本)...
  • (三)Hyperledger Fabric 1.1安装部署-chaincode测试
  • (学习日记)2024.03.25:UCOSIII第二十二节:系统启动流程详解
  • .cn根服务器被攻击之后
  • @GlobalLock注解作用与原理解析
  • [23] 4K4D: Real-Time 4D View Synthesis at 4K Resolution
  • [Android] 修改设备访问权限
  • [Android]创建TabBar
  • [caffe(二)]Python加载训练caffe模型并进行测试1
  • [CareerCup] 2.1 Remove Duplicates from Unsorted List 移除无序链表中的重复项
  • [Deep Learning] 神经网络基础
  • [go 反射] 进阶
  • [Interview]Java 面试宝典系列之 Java 多线程
  • [Linux] PHP程序员玩转Linux系列-telnet轻松使用邮箱