通过项目学习Python(一)

  • Python 列表
  • Python 条件判断和循环
    • 条件判断
    • 循环
  • Python 字典
  • Python 函数
  • 实现包含3位同学的成绩管理
  • 一个找战舰位置的游戏

Python 列表

Python内置的一种数据类型是列表:list。list是一种有序的集合,可以随时添加和删除其中的元素。

这是一个简单的列表,列表里面有3个元素

students = [lloyd, alice, tyler]

用len函数来获取列表的个数

len(students)

通过列表的索引来访问列表

print students[0]
print students[1]
print students[-1] #表示最后一个元素

往list中追加元素到末尾

students.append('Adam')

删除list末尾的元素

students.pop() #删除最后一个元素
students.pop(1) #删除指定的元素

要把某个元素替换成别的元素

students[0] = 'Amy'

Python 条件判断和循环

条件判断

格式如图

通过条件判断对具体的分数赋等级

if score >= 90:return "A"elif score >= 80:return "B"elif score >= 70:return "C"elif score >= 60:return "D"else:return "F"

循环

for循环(1):for item in list
方法 1 对于遍历列表很有用,但无法以这种方式修改列表。
打印各个元素的名子和成绩,这里用到后面的字典

for student in students:print student["name"]score = get_average(student)print scoreprint get_letter_grade(score)

for循环(2):循环访问索引
方法 2 使用索引遍历列表,以便在需要时也可以修改列表。

for turn in range(4):board[guess_row][guess_col] = "X" # 这里可以改变列表中的信息

Python 字典

Python内置了字典:dict的支持,dict全称dictionary,在其他语言中也称为map,使用键-值(key-value)存储,具有极快的查找速度。

创建一个字典

里面包含这位同学的名字和成绩

lloyd = {"name": "Lloyd","homework": [90.0, 97.0, 75.0, 92.0],"quizzes": [88.0, 40.0, 94.0],"tests": [75.0, 90.0]
}

访问字典里的元素

print student["name"]
average(student["homework"]) #这里使用了函数,下面会提到

Python 函数

Python内置了很多有用的函数,我们可以直接调用。如:abs(),max(),min()等等。
更多内置函数根据Python官网的文件

定义函数:
这里定义了一个计算平均成绩的函数

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"])total = homework * 0.1 + quizzes * 0.3 + tests * 0.6return total

引入Python的包
这里加入一个生成随机数的包
随机生成一个点的横纵坐标

from random import randint
def random_row(board):return randint(0, len(board) - 1)def random_col(board):return randint(0, len(board[0]) - 1)ship_row = random_row(board)
ship_col = random_col(board)

实现包含3位同学的成绩管理

达到目的:用字典定义学生,用列表定义班级,计算学生成绩,得到等级以及班级平均分

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]# Add your function below!
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"])total = homework * 0.1 + quizzes * 0.3 + tests * 0.6return totaldef get_letter_grade(score):if score >= 90:return "A"elif score >= 80:return "B"elif score >= 70:return "C"elif score >= 60:return "D"else:return "F"for student in students:print student["name"]score = get_average(student)print scoreprint get_letter_grade(score)def get_class_average(class_list):results = []for student in class_list:student_avg = get_average(student)results.append(student_avg)return average(results)print get_class_average(students)

运行结果

Lloyd
80.55
B
Alice
91.15
A
Tyler
79.9
C
83.8666666667

一个找战舰位置的游戏

内容:在5*5的区域随机确认一个点为战舰的位置,玩家通过输入位置判断是否正确(有4次机会)

from random import randintboard = []for x in range(0, 5):board.append(["O"] * 5)def print_board(board):for row in board:print " ".join(row)print_board(board)def random_row(board):return randint(0, len(board) - 1)def random_col(board):return randint(0, len(board[0]) - 1)ship_row = random_row(board)
ship_col = random_col(board)# Everything from here on should be in your for loop
# don't forget to properly indent!for turn in range(4): #猜四次print "Turn", turn + 1guess_row = int(raw_input("Guess Row: "))guess_col = int(raw_input("Guess Col: ")) #输入猜的坐标if guess_row == ship_row and guess_col == ship_col:print "Congratulations! You sank my battleship!"  #猜对了,退出循环break  else:if guess_row not in range(5) or \guess_col not in range(5):print "Oops, that's not even in the ocean." #超出了区域elif board[guess_row][guess_col] == "X":print( "You guessed that one already." ) # 猜过了else:print "You missed my battleship!"board[guess_row][guess_col] = "X" #猜错了,加入提示print_board(board)if turn == 3:print "Game Over"

通过项目学习Python(一)相关推荐

  1. 如何自学python到做项目-总算明白如何通过项目学习python

    在学习完Python的基础知识之后,有很多朋友为自己接下来要干什么感到迷茫.不知道应该通过什么样的项目来锻炼自己编程水平和思维能力.接下来我就给大家说几个适合Python的新手项目和练手项目,Pyth ...

  2. 一个用python做的完整项目_我从一个小项目学习Python编程的全过程(二)

    在(一)中的时候我们分析了如何获取所有人无忧币的统计情况,接下来开始学着写代码了: 首先第一步我们得把第一个页面的源代码:#coding:utf-8 import urllib url = 'http ...

  3. 没学过python、但是还是有公司要-学习python 基础都会了 为什么还是做不出项目呢?...

    原标题:学习python 基础都会了 为什么还是做不出项目呢? Python是一门足够简单但又非常强大的程序语言,应用领域甲冠天下,在WEB开发.WEB爬虫.科学计算.人工智能.云计算.数据分析.数据 ...

  4. python基础学习[python编程从入门到实践读书笔记(连载三)]:django学习笔记web项目

    文章目录 Django项目:学习笔记web网页 项目部署 参考 自己部署的网站,还是小有成就感的,毕竟踩过很多坑,实战技能也有些许进步. 网站链接:http://lishizheng.herokuap ...

  5. python项目构建_通过构建4个项目来学习Python网络

    python项目构建 The Python programming language is very capable when it comes to networking. We've releas ...

  6. 利用Python让工作更轻松 -项目学习实例之一,从文本文件中提取数据

    王洪波 荣成市石岛实验中学 Python教学开展有几年的时间了,可是大多学生并不感兴趣,只是记了些语法,敲了教材上的代码,至于Python能干什么,学了Python有什么用,知之甚少.我们学习语言并不 ...

  7. python基础学习[python编程从入门到实践读书笔记(连载二)]:外星人入侵项目

    第一版游戏demo 添加计分系统:中间是最高得分,右边是本次得分. 显示余下的飞船数 主函数如下,完整程序将上传到笔者的github:https://github.com/shizhengLi/lea ...

  8. python从爬虫到数据分析项目_零基础学习Python web开发、Python爬虫、Python数据分析,从基础到项目实战!...

    随着大数据和人工智能的发展,目前Python语言的上升趋势比较明显,而且由于Python语言简单易学,所以不少初学者往往也会选择Python作为入门语言. Python语言目前是IT行业内应用最为广泛 ...

  9. 如何零基础学习python语言_零基础如何入门Python语言?有哪些学习建议?

    众所周知,Python目前是最受欢迎的编程语言之一,尤其是对于零基础的初学者来说,Python语言更是十分的友好.因此,不少初学者常常会有这样一个共同的疑惑,零基础如何入门Python语言?本文就来给 ...

最新文章

  1. maven 的依赖传递
  2. 自动化测试 div sendkeys无效_【自动化测试】【JestSelenium】(04)—— Selenium WebDriver...
  3. 【转】正则基础之——捕获组(capture group)
  4. 安卓手电筒_将价值10美元的手电筒砍入超高亮高级灯中
  5. 关于窗口的一些小脚本
  6. 华大单片机m4内核的滴答定时器_微处理器、单片机及其外设,处理还是控制?...
  7. 糖药病数据集分类_使用optuna和mlflow进行心脏病分类器调整
  8. 对python的功能和扩展功能的认知_Python基础-基础认知和库了解
  9. SQL—— Create table as select 与 使用select查询结果创建新表
  10. codeblocks中文编码问题
  11. 天津西站,大屏幕程序出错啦
  12. SeSe 2005-02-11 -- 2005-02-12
  13. 字符串String实战之商品对象缓存管理之新增与获取详情
  14. 指数函数以及对数函数的导数
  15. python分位数回归模型_分位数回归及其Python源码导读
  16. python中美元人汇率_Python爬虫练习:爬取美元历史汇率
  17. oracle10.21数据库安装,安装并创建数据库【Oracle Database 10g】(三)
  18. 集团企业用户收不到彩信手机报是怎么回事?
  19. 日志Error creating bean with name ‘sqlSessionFactory‘ defined in class path resource [applicationConte
  20. system磁盘占有率太高,进入桌面一直无法使用

热门文章

  1. 4G模块G8100低功耗对比测试
  2. Asp.net 2.0 用Membership自己写登录页面
  3. 没有金刚钻,敢揽瓷器活儿
  4. SSM毕设项目四川省非物质文化遗产之传统手工技艺数字平台i7k3a(java+VUE+Mybatis+Maven+Mysql)
  5. 数码宝贝第一部中关于进化,超进化,神圣计划,徽章的一点思考
  6. 小甲鱼课后作业_点赞!林州这个学校率先开启课后辅导服务工作!
  7. 互联网公司员工看球福利真不少
  8. 单链表的基本操作(详细)
  9. jquery 商品评论 星星点击 事件
  10. Text classification