python入门利器-codecademy-分享一个简单练习

对于数据分析的同学来讲,要做的深入,R和Python是要会一个的,那零基础怎么学呢?https://www.codecademy.com/ 是个不错的选择,它会以介绍、让你练习、练习通过进入下一步(或者自己挑选某个章节)的方式进行练习,不会给你答案,要么正确通过,要么就放在那里,直到你会,可以清楚地看到自己哪个部份完成了多少,总体进度等。数学专业无理由惧怕编程的同学可以学R,你一看到R代码就像是看到了自己学过的数学公式一样,会更容易接受和理解。Python语言较为严格一些。

免费版本对于Python基础的掌握已经够了,学完这上边的课程,基本上会对Python有一个基本了解,紧接着学习各个数据分析常用模块(numpy、pandas、Matplolib)就会比较容易。比如下边的例子其实是一个大章节里的10几个小步骤完成的,每一步通过会进入下一步,循序渐进、由简入繁,很好理解。codecademy上边的练习不是按照项目,有点像模块,但是我们的目标是用Python来支持数据分析工作,不是当Python程序员。

基础步骤必须敲代码,一步一步来,否则一个缩进就能把人干倒。

目的,求一个班级的平均成绩及对应的成绩类型。

#字典的定义方式lloyd = {
    "name": "Lloyd",
    "homework": [90.0,97.0,75.0,92.0],
    "quizzes": [88.0,40.0,94.0],
    "tests": [75.0,90.0]
}
alice = {
    "name": "Alice",
    "homework": [100.0, 92.0, 98.0, 100.0],
    "quizzes": [82.0, 83.0, 91.0],
    "tests": [89.0, 97.0]
}
tyler = {
    "name": "Tyler",
    "homework": [0.0, 87.0, 75.0, 22.0],
    "quizzes": [0.0, 75.0, 78.0],
    "tests": [100.0, 100.0]
} 若要打印学生的名称及其成绩:
students=[lloyd,alice,tyler]
for each in students:
    print each["name"]
    print each["homework"]
    print each["quizzes"]
    print each["tests"]
Lloyd
[90.0, 97.0, 75.0, 92.0]
[88.0, 40.0, 94.0]
[75.0, 90.0]
Alice
[100.0, 92.0, 98.0, 100.0]
[82.0, 83.0, 91.0]
[89.0, 97.0]
Tyler
[0.0, 87.0, 75.0, 22.0]
[0.0, 75.0, 78.0]
[100.0, 100.0]

# 自定义一个函数求一个list的平均值
def average(numbers):
    total=sum(numbers)
    total=float(total)
    return total/len(numbers)

#自定义一个函数,求一个学生的综合成绩,先求出各个分类的平均成绩,再分别乘以每个类别的权重,得到他的综合成绩
def get_average(student):
    homework=average(student["homework"])
    quizzes=average(student["quizzes"])
    tests=average(student["tests"])
    return 0.1*homework+0.3*quizzes+0.6*tests
#自定义一个函数,将成绩分为不同等级
def get_letter_grade(score):
    if score>=90:
        return "A"
    elif score>=80 and score<90:
        return "B"
    elif score>=70 and score<80:
        return "C"
    elif score>=60 and score<70:
        return "D"
    else:
        return "F"

#测试一下,求Lloyd的综合成绩
get_letter_grade(get_average(lloyd))

#定义一个函数,求一个班级的综合成绩
def get_class_average(students):
    results=[];
    for student in students:
        results.append(get_average(student))
    return average(results)
#假设这个班有三个人print get_class_average([lloyd,alice,tyler])

print get_letter_grade(get_class_average([lloyd,alice,tyler]))
时间: 2024-12-17 05:02:39

python入门利器-codecademy-分享一个简单练习的相关文章

Python入门 —— 用pycharm写一个简单的小程序3

环境:Win10操作系统:Python3.7:Pycharm 题目来源:PTA 编程实例1:日期格式化 世界上不同国家有不同的写日期的习惯.比如美国人习惯写成“月-日-年”,而中国人习惯写成“年-月-日”.下面请你写个程序,自动把读入的美国格式的日期改写成中国习惯的日期. 输入格式: 输入在一行中按照“mm-dd-yyyy”的格式给出月.日.年.题目保证给出的日期是1900年元旦至今合法的日期. 输出格式: 在一行中按照“yyyy-mm-dd”的格式给出年.月.日. 输入样例: 03-15-20

分享一个简单的简单的SQLHelper类

分享一个简单的简单的SQLHelper类,代码如下: 1 class SqlHelper 2 { 3 public static readonly string connstr = 4 ConfigurationManager.ConnectionStrings["dbConnStr"].ConnectionString; 5 6 public static int ExecuteNonQuery(string cmdText, 7 params SqlParameter[] para

OpenCV 入门示例之四:一个简单的变换

前言 图像的平滑处理,是计算机视觉中非常重要的操作,本文将展示一个可以对图像进行平滑处理的简单程序.而关于平滑处理深层次的知识,会在以后的文章中重点探讨. 代码示例 1 // 此头文件包含图像IO函数的声明 2 #include "highgui.h" 3 // 此头文件包含基本的图像处理函数和高级计算机视觉算法 4 #include "cv.h" 5 6 int main (void) { 7 8 // 将D盘目录下名为" 1.jpg "的图像

完成一段简单的Python程序,用于实现一个简单的加减乘除计算器功能

#!/bin/usr/env python#coding=utf-8'''完成一段简单的Python程序,用于实现一个简单的加减乘除计算器功能'''try: a=int(raw_input("please input a number:"))except ValueError: print("第一个运算数字输入非数字") try: b=int(raw_input("please input another number:"))except Val

分享一个简单易用的软件定时器模块——基于keil+stm32f103zet+hal库(裸机实现)

公众号上看到一个比较好的一个github项目:https://github.com/0x1abin/MultiTimer 今天看了看,简单的,就移植了- 且看文档的说明, ================================= 分享一个简单易用的软件定时器模块——MultiTimer.源码地址: https://github.com/0x1abin/MultiTimer 简介 MultiTimer 是一个软件定时器扩展模块,可无限扩展你所需的定时器任务,取代传统的标志位判断方式, 更

分享一个简单的python+mysql网络数据抓取

最近学习python网络爬虫,所以自己写了一个简单的程序练练手(呵呵..).我使用的环境是python3.6和mysql8.0,抓取目标网站为百度热点(http://top.baidu.com/).我只抓取了实时热点内容,其他栏目应该类似.代码中有两个变量SECONDS_PER_CRAWL和CRAWL_PER_UPDATE_TO_DB,前者为抓取频率,后者为抓取多少次写一次数据库,可自由设置.我抓取的数据内容是热点信息,链接,关注人数和时间.其在内存中存放的结构为dict{tuple(热点信息,

Python学习第三天(一个简单制作导入模块)

Python一个简单的模块制作和导入 一个简单的模块 [[email protected] python]# cat my.py name = 'I am wuang!' 导入模块 >>> import my >>> print my.name I am wuang! 直接导入模块属性名字 >>> from my import name >>> print name I am wuang!

[python] 理解metaclass并实现一个简单ORM框架

metaclass 除了使用type()动态创建类以外,要控制类的创建行为,还可以使用metaclass. metaclass,直译为元类,简单的解释就是: 当我们定义了类以后,就可以根据这个类创建出实例,所以:先定义类,然后创建实例. 但是如果我们想创建出类呢?那就必须根据metaclass创建出类,所以:先定义metaclass,然后创建类. 连接起来就是:先定义metaclass,就可以创建类,最后创建实例. 所以,metaclass允许你创建类或者修改类.换句话说,你可以把类看成是met

分享一个简单易用的RPC开源项目—Tatala

http://zijan.iteye.com/blog/2041894 这个项目最早(2008年)是用于一个网络游戏的Cache Server,以及一个电子商务的Web Session服务.后来不断增加新的功能,除了Java还支持C#,到现在已经可以用它来开发网络游戏的服务器.等过些日子我还会开源网络游戏的服务器源码. 关于性能,当时后台相应请求的效率是每秒10W次,现在我在自己的笔记本上测,只有一个客户端与服务器都在一个物理机上(CPU: i7-3610QM; RAM: 8G; OS: Win