IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> 通过项目学习Python(一) -> 正文阅读

[Python知识库]通过项目学习Python(一)

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 score
  print 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.6
  return 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.6
  return total

def 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 score
  print 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 randint

board = []

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 + 1
  guess_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中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2022-04-22 18:32:27  更:2022-04-22 18:35:26 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 18:06:46-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码