实验楼python3学习挑战项目

在实验楼学习python3做的挑战项目做的代码整理。

链接:https://www.shiyanlou.com/courses/596

1、圆的面积

题目:

能够计算出一个半径为2的圆的面积,并且把面积打印出来,保留小数点后10位。

不要使用 input 等方法获得输入,程序不需要输入任何参数,可以使用 python3 CircleArea.py 执行,并直接输出 半径为2 的圆的面积数字。

提示语:

import math

format

注意脚本名称和路径

知识点:

导入模块

打印输出

运算符和表达式

代码实现:

#!/usr/bin/env python3

import math

r=2

print("{:.10f}".format(math.pi*r**2))

代码实现手动输入半径:

#!/usr/bin/env python3

import math

r=float(input("Enter the r: "))

print("{:.10f}".format(math.pi*r**2))

2、字符串操作

题目:

创建一个 名为 FindDigits.py 的Python 脚本,请读取一串字符串并且把其中所有的数字组成一个新的字符串,并且打印出来。我们提供的字符串可以通过在命令行中输入如下代码来获取。

提示语:

使用循环来访问字符串中的单个字符

isdigit()

记得把新的字符串打印出来,print()函数记得要加括号(这里是Python3 的主场!敲黑板)

知识点:

循环

字符串操作

代码实现:

#!/usr/bin/env python3

file=open('/home/shiyanlou/Code/String.txt')

str_file-file.read()

num=""

for i in range(len(str_file)):

if str_file[i].isdigit():

num+=str_file[i]

print("%s"%num)

3、玩转函数

题目:

实现一个函数 Hours(),将用户输入的 分钟数 转化为 小时数和分钟数,并要求小时数尽量大。讲结果以 XX H, XX M 的形式打印出来。(注意打印格式中的空格)

要求

用户能够通过命令行输入分钟数,程序需要打印出相应的小时数和分钟数

如果用户输入的是一个负值,程序需要报错 ValueError

需要进行 try…except 操作来控制异常。如果异常,在屏幕上打印打印出 ValueError: Input number cannot be negative 提示用户输入的值有误

提示语:

import sys

raise语句

try…except 语句

知识点:

异常

文件处理

if-else

代码实现:

#!/usr/bin/env python3

import sys

def Hours(num):

hour=int(num/60)

minute=int(num%60)

print(hour,"H,",minute,"M")

if len(sys.argv)<2:

sys.exit(1)

else:

if int(sys.argv[1])<0:

try:

raise ValueError("A value error happened.")

except ValueError:

print("ValueError: Input number cannot be negative")

else:

Hours(int(sys.argv[1]))

4、类和Collection

题目:

改写我们在第11节类这个模块当中 2.3 继承 部分的 student_teacher.py 脚本,在Person()类中增添函数get_grade()。对于教师类,该函数可以自动统计出老师班上学生的得分情况并按照频率的高低以A: X, B: X, C: X, D: X 的形式打印出来。对于学生类,该函数则可以以Pass: X, Fail: X 来统计自己的成绩情况(A,B,C 为 Pass, 如果得了 D 就认为是 Fail)。

student_teacher.py 文件可以通过在Xfce 终端中输入如下代码来获取

wget http://labfile.oss.aliyuncs.com/courses/790/student_teacher.py

要求

请把最终的student_teacher.py 代码文件放在 /home/shiyanlou/Code/ 路径下

根据命令行中的第一个参数 teacher 或者 student 来判断最终输出的格式。

命令行中第二个输入的参数是需要统计的字符串

提示语:

import sys

collections 中的 Counter 子类

format() 以及 join

知识点:

Collection 模块

注意最终的打印形式

代码实现:

#!/usr/bin/env python3

import sys

from collections import Counter

class Person(object):

def __init__(self, name):

self.name = name

def get_details(self):

return self.name

def get_grade(self,grade):

if self.name=='teacher':

list=Counter(grade).most_common()

item=["{}:{}".format(x,y) for x,y in list]

return ','.join(item)

elif self.name=='student':

return "Pass:{},Fail:{}".format(len(grade)-grade.count("D"),grade.count("D"))

class Student(Person):

def __init__(self, name, branch, year):

Person.__init__(self, name)

self.branch = branch

self.year = year

def get_details(self):

return "{} studies {} and is in {} year.".format(self.name, self.branch, self.year)

class Teacher(Person):

def __init__(self, name, papers):

Person.__init__(self, name)

self.papers = papers

def get_details(self):

return "{} teaches {}".format(self.name, ','.join(self.papers))

if __name__=='__main__':

if len(sys.argv)<2:

sys.exit(-1)

else:

person=Person(sys.argv[1])

print(person.get_grade(sys.argv[2]))

实验楼python3中挑战一_实验楼python3学习挑战项目相关推荐

  1. python3中map函数_解决Python3下map函数的显示问题

    map函数是Python里面比较重要的函数,设计灵感来自于函数式编程.Python官方文档中是这样解释map函数的: map(function, iterable, ...) Return an it ...

  2. python3中format方法_[翻译]python3中新的字符串格式化方法-----f-string

    从python3.6开始,引入了新的字符串格式化方式,f-字符串. 这使得格式化字符串变得可读性更高,更简洁,更不容易出现错误而且速度也更快. 在本文后面,会详细介绍f-字符串的用法. 在此之前,让我 ...

  3. python3中zip函数_用python实现矩阵转置,python3 中zip()函数

    前几天群里有同学提出了一个问题:手头现在有个列表,列表里面两个元素,比如[1, 2],之后不断的添加新的列表,往原来相应位置添加.例如添加[3, 4]使原列表扩充为[[1, 3], [2, 4]],再 ...

  4. python3.6字典有序_为什么Python3.6字典变得有序了?

    原博文 2019-12-25 16:09 − 其实 在你看了笔者的文章之前,或许想过这样一个问题, 为什么列表是有顺序的呢?而字典不是? 来看一下在内存中是怎样存储的就知道了: 列表的存储是顺序存储, ...

  5. python3调用c代码_在Python3.6中调用C代码

    由于完全不懂用C#编写代码,我希望在python代码中调用C#函数.我知道在同一个问题上有很多问题,但是由于一些奇怪的原因,我无法从一个示例python模块导入一个简单的c类库.在 以下是我所做的-C ...

  6. python3中多项式创建_机器学习入门之机器学习之路:python 多项式特征生成PolynomialFeatures 欠拟合与过拟合...

    本文主要向大家介绍了机器学习入门之机器学习之路:python 多项式特征生成PolynomialFeatures  欠拟合与过拟合,通过具体的内容向大家展现,希望对大家学习机器学习入门有所帮助. 分享 ...

  7. python中circle函数_从Python3.6 Zelle Graphics中的另一个函数调用circle函数

    我已经看了所有关于圆.python和调用函数的问题,没有任何帮助.我也不能用乌龟,所以请不要这样建议.谢谢您!在 我试图创建一个程序,绘制不同颜色和半径的同心圆(以生成类似目标的图像),但drawCi ...

  8. python中合法的布尔表达式_笔记||Python3之布尔表达式+条件判断

    布尔表达式: 布尔类型:特性:只有两种情况 ---   真  /  假 1 -- True    False 2 -- type(True) ------------ 布尔表达式:1 ---它的结果是 ...

  9. python3.6 django教程_【Python3.6+Django2.0+Xadmin2.0系列教程一】环境搭建及项目创建

    由于工作需要,接触了大半年时间的Django+xadmin框架,一直没空对这块对进行相关的梳理.最近在同事的怂恿下,就在这分享下笔者的学习及工作经验吧. 好了,话不多说,下面开始进入正题: 环境需求: ...

最新文章

  1. 数据分析中会常犯哪些错误,如何解决的?
  2. Session的lock()方法
  3. 青岛大学计算机专硕和学硕,【2020】【青岛大学】【学硕646】复习经验
  4. python一个图画两条曲线_用python建立两个Y轴的XY曲线图方法
  5. [ATF]-ATF文档和代码的深度解读
  6. python colorbar设置大小及位置_matplotlib colorbar更改轴大小
  7. ansys经典界面分析工字钢_【干货】基于ANSYS经典界面的接触分析例子
  8. 有哪些值得推荐的PS(Adobe Photoshop)插件?
  9. Windows 10中检查已安装编解码器的几个方法
  10. 220421-一些电平转换电路
  11. DNS服务器ttl修改不生效,中科三方DNS专家手把手教学——定位域名解析不生效问题...
  12. Nginx编译安装与虚拟主机配置
  13. 【2022天梯赛】L1-8 静静的推荐 L2-1 插松枝 L2-2 老板的作息表
  14. ArcGIS——dwg与shp转换原理
  15. Microsoft KMS Client Setup Keys ( Windows + Office )
  16. CIW认证题库-页面设计与制作
  17. 1.7-秩和相关关系
  18. 一文读懂机器学习需要哪些数学知识
  19. mock打桩不生效的问题
  20. 独家解读:你所不知道的阿里1688

热门文章

  1. lvs,haproxy实现负载均衡
  2. ASP.NET MVC应用程序把文字写在图片上
  3. 数据库取图片拼接ImageUrl
  4. 使用JDBC完成数据的增删改查
  5. java实现定时任务 schedule_Java定时任务的三种实现方式
  6. 计算机网络技术应用和发展,计算机网络技术的应用和发展研究
  7. html5 ocr图片识别,OCR识别控件LEADTOOLS HTML5案例:整页OCR识别
  8. ob和mysql兼容吗_OceanBase SQL简介
  9. 运放输入偏置电流方向_连载 | 运放参数的详细解释和分析part2如何测量输入偏置电流Ib和输入失调电流Ios...
  10. python装饰器怎么调用_Python学习22-外部程序的调用装饰器