p ython中while和for区别
时间: 2023-04-30 22:04:57 浏览: 53
在Python中,while和for是不同的循环类型。while循环会在指定条件为真时一直执行代码块,而for循环将在一个序列(如列表、元组或字符串)中迭代执行代码块,也可以使用range()函数来指定循环的次数。
相关问题
p ython五子棋游戏代码
下面是一个简单的 Python 五子棋游戏代码,供参考:
```python
import numpy as np
# 定义棋盘大小
ROW = 15
COL = 15
# 定义棋子类型
EMPTY = 0
BLACK = 1
WHITE = 2
# 定义赢法数组
win_array = np.zeros((ROW, COL, 572), dtype=np.bool)
# 初始化赢法数组
count = 0
# 横向赢法
for i in range(ROW):
for j in range(COL-4):
for k in range(5):
win_array[i, j+k, count] = True
count += 1
# 纵向赢法
for i in range(ROW-4):
for j in range(COL):
for k in range(5):
win_array[i+k, j, count] = True
count += 1
# 斜向赢法 (\)
for i in range(ROW-4):
for j in range(COL-4):
for k in range(5):
win_array[i+k, j+k, count] = True
count += 1
# 斜向赢法 (/)
for i in range(4, ROW):
for j in range(COL-4):
for k in range(5):
win_array[i-k, j+k, count] = True
count += 1
# 定义游戏类
class Game:
def __init__(self):
self.board = np.zeros((ROW, COL), dtype=np.int)
self.current_player = BLACK
self.gameover = False
# 判断是否胜利
def is_win(self, player):
for i in range(572):
if np.all(self.board[win_array[:, :, i]] == player):
return True
return False
# 判断是否平局
def is_draw(self):
return np.all(self.board != EMPTY)
# 落子
def move(self, i, j):
if self.gameover or self.board[i, j] != EMPTY:
return False
self.board[i, j] = self.current_player
if self.is_win(self.current_player):
self.gameover = True
print("Player %d wins!" % self.current_player)
elif self.is_draw():
self.gameover = True
print("Draw!")
else:
self.current_player = WHITE if self.current_player == BLACK else BLACK
return True
# 打印棋盘
def print_board(self):
print(" ", end="")
for i in range(COL):
print("%2d" % i, end="")
print()
for i in range(ROW):
print("%2d" % i, end="")
for j in range(COL):
if self.board[i, j] == BLACK:
print(" ○", end="")
elif self.board[i, j] == WHITE:
print(" ●", end="")
else:
print(" +", end="")
print()
# 测试代码
if __name__ == '__main__':
game = Game()
game.print_board()
while not game.gameover:
i, j = map(int, input("Player %d's turn (row, col): " % game.current_player).split())
game.move(i, j)
game.print_board()
```
运行此代码可以开始玩五子棋游戏。
p ython学生管理系统
好的,一个简单的 Python 学生管理系统需要实现以下功能:
1. 添加学生信息:包括学生姓名、学号、性别、年龄、班级等信息;
2. 查询学生信息:可以按照学号或姓名查询学生信息;
3. 修改学生信息:可以修改学生的姓名、性别、年龄、班级等信息;
4. 删除学生信息:可以根据学号或姓名删除学生信息;
5. 显示所有学生信息:将所有学生信息打印出来。
下面是一个简单的实现示例:
```python
students = []
def add_student():
name = input("请输入学生姓名:")
id = input("请输入学号:")
gender = input("请输入性别:")
age = int(input("请输入年龄:"))
cls = input("请输入班级:")
student = {"name": name, "id": id, "gender": gender, "age": age, "class": cls}
students.append(student)
print("添加成功!")
def search_student():
key = input("请输入查询关键字(学号或姓名):")
result = []
for student in students:
if key in student["name"] or key == student["id"]:
result.append(student)
if len(result) == 0:
print("没有找到相关学生!")
else:
for student in result:
print("姓名:{},学号:{},性别:{},年龄:{},班级:{}".format(student["name"], student["id"], student["gender"], student["age"], student["class"]))
def modify_student():
id = input("请输入要修改的学生学号:")
index = -1
for i in range(len(students)):
if students[i]["id"] == id:
index = i
break
if index == -1:
print("没有找到该学生!")
else:
name = input("请输入学生姓名:")
gender = input("请输入性别:")
age = int(input("请输入年龄:"))
cls = input("请输入班级:")
students[index]["name"] = name
students[index]["gender"] = gender
students[index]["age"] = age
students[index]["class"] = cls
print("修改成功!")
def delete_student():
id = input("请输入要删除的学生学号:")
index = -1
for i in range(len(students)):
if students[i]["id"] == id:
index = i
break
if index == -1:
print("没有找到该学生!")
else:
students.pop(index)
print("删除成功!")
def show_students():
if len(students) == 0:
print("没有学生信息!")
else:
for student in students:
print("姓名:{},学号:{},性别:{},年龄:{},班级:{}".format(student["name"], student["id"], student["gender"], student["age"], student["class"]))
while True:
print("1. 添加学生信息")
print("2. 查询学生信息")
print("3. 修改学生信息")
print("4. 删除学生信息")
print("5. 显示所有学生信息")
print("0. 退出系统")
choice = int(input("请输入操作编号:"))
if choice == 1:
add_student()
elif choice == 2:
search_student()
elif choice == 3:
modify_student()
elif choice == 4:
delete_student()
elif choice == 5:
show_students()
elif choice == 0:
break
else:
print("输入有误,请重新输入!")
```
这个程序实现了上述五个功能,通过一个 while 循环不断接受用户输入并调用相应的函数进行处理。