通过项目学习Python(一)
通过项目学习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(一)相关推荐
- 如何自学python到做项目-总算明白如何通过项目学习python
在学习完Python的基础知识之后,有很多朋友为自己接下来要干什么感到迷茫.不知道应该通过什么样的项目来锻炼自己编程水平和思维能力.接下来我就给大家说几个适合Python的新手项目和练手项目,Pyth ...
- 一个用python做的完整项目_我从一个小项目学习Python编程的全过程(二)
在(一)中的时候我们分析了如何获取所有人无忧币的统计情况,接下来开始学着写代码了: 首先第一步我们得把第一个页面的源代码:#coding:utf-8 import urllib url = 'http ...
- 没学过python、但是还是有公司要-学习python 基础都会了 为什么还是做不出项目呢?...
原标题:学习python 基础都会了 为什么还是做不出项目呢? Python是一门足够简单但又非常强大的程序语言,应用领域甲冠天下,在WEB开发.WEB爬虫.科学计算.人工智能.云计算.数据分析.数据 ...
- python基础学习[python编程从入门到实践读书笔记(连载三)]:django学习笔记web项目
文章目录 Django项目:学习笔记web网页 项目部署 参考 自己部署的网站,还是小有成就感的,毕竟踩过很多坑,实战技能也有些许进步. 网站链接:http://lishizheng.herokuap ...
- python项目构建_通过构建4个项目来学习Python网络
python项目构建 The Python programming language is very capable when it comes to networking. We've releas ...
- 利用Python让工作更轻松 -项目学习实例之一,从文本文件中提取数据
王洪波 荣成市石岛实验中学 Python教学开展有几年的时间了,可是大多学生并不感兴趣,只是记了些语法,敲了教材上的代码,至于Python能干什么,学了Python有什么用,知之甚少.我们学习语言并不 ...
- python基础学习[python编程从入门到实践读书笔记(连载二)]:外星人入侵项目
第一版游戏demo 添加计分系统:中间是最高得分,右边是本次得分. 显示余下的飞船数 主函数如下,完整程序将上传到笔者的github:https://github.com/shizhengLi/lea ...
- python从爬虫到数据分析项目_零基础学习Python web开发、Python爬虫、Python数据分析,从基础到项目实战!...
随着大数据和人工智能的发展,目前Python语言的上升趋势比较明显,而且由于Python语言简单易学,所以不少初学者往往也会选择Python作为入门语言. Python语言目前是IT行业内应用最为广泛 ...
- 如何零基础学习python语言_零基础如何入门Python语言?有哪些学习建议?
众所周知,Python目前是最受欢迎的编程语言之一,尤其是对于零基础的初学者来说,Python语言更是十分的友好.因此,不少初学者常常会有这样一个共同的疑惑,零基础如何入门Python语言?本文就来给 ...
最新文章
- maven 的依赖传递
- 自动化测试 div sendkeys无效_【自动化测试】【JestSelenium】(04)—— Selenium WebDriver...
- 【转】正则基础之——捕获组(capture group)
- 安卓手电筒_将价值10美元的手电筒砍入超高亮高级灯中
- 关于窗口的一些小脚本
- 华大单片机m4内核的滴答定时器_微处理器、单片机及其外设,处理还是控制?...
- 糖药病数据集分类_使用optuna和mlflow进行心脏病分类器调整
- 对python的功能和扩展功能的认知_Python基础-基础认知和库了解
- SQL—— Create table as select 与 使用select查询结果创建新表
- codeblocks中文编码问题
- 天津西站,大屏幕程序出错啦
- SeSe 2005-02-11 -- 2005-02-12
- 字符串String实战之商品对象缓存管理之新增与获取详情
- 指数函数以及对数函数的导数
- python分位数回归模型_分位数回归及其Python源码导读
- python中美元人汇率_Python爬虫练习:爬取美元历史汇率
- oracle10.21数据库安装,安装并创建数据库【Oracle Database 10g】(三)
- 集团企业用户收不到彩信手机报是怎么回事?
- 日志Error creating bean with name ‘sqlSessionFactory‘ defined in class path resource [applicationConte
- system磁盘占有率太高,进入桌面一直无法使用