小学生python游戏编程arcade----excel调用

本文介绍了如何在Python的Arcade游戏编程中读取和使用Excel数据,包括读取函数的实现,如从Excel文件中提取单词,并在游戏中应用。通过示例代码展示了如何打开和解析Excel文件,将数据转换为字典和序列,以及在游戏中提取特定单词。
摘要由CSDN通过智能技术生成

前言

接上篇文章继续解绍arcade游戏编程的基本知识。游戏基本界面弄好,英语单词录入excel后调用问题,基本涉及到单词及语义的读取,随机打乱,显示问题,游戏中公共函数的调用及效果。

小学生python游戏编程arcade----excel调用

1、excel文件

1.1 excel表头

在这里插入图片描述

1.2 excel文件

在这里插入图片描述

1.3 文件读取函数
def get_data(filename, sheetnum):
    # dir_case = 'F:\\code\\csdn\\cese_excel\\' + filename + '.xlsx'
    dir_case = filename
    data = xlrd.open_workbook(dir_case)
    table = data.sheets()[sheetnum]
    nor = table.nrows
    nol = table.ncols
    dict = {}
    for i in range(1, nor):
        for j in range(nol):
            title = table.cell_value(0, j)
            value = table.cell_value(i, j)
            dict[title] = value
        yield dict



1.4 打开excel文件读取数据,每行一个字典,再总存为序列
def run_select_school2(filename, sheet_index=0, table_header_row=0):
    # 打开excel文件读取数据,每行一个字典,再总存为序列
    data = xlrd.open_workbook(filename)
    table = data.sheet_by_index(sheet_index)
    nrows = table.nrows
    nclos = table.ncols
    # 获取表头行的信息,为一个字典
    header_row_data = table.row_values(table_header_row)
    # 将每行的信息放入一个字典,再将字典放入一个列表中
    list = []
    for rownum in range(1, nrows):
        rowdata = table.row_values(rownum)
        # 如果rowdata有值,
        if rowdata:
            dict = {}
            for j in range(0, len(header_row_data)):
                dict[header_row_data[j]] = rowdata[j]
            list.append(dict)
    return list

1.5 打开excel文件读取数据,取两列存为字典
def getwordzw(filename, sheet_index=0, danyuan=1,nianji='三年级上册'):
    # 打开excel文件读取数据,取两列存为字典
    data = xlrd.open_workbook(filename)
    table = data.sheet_by_index(sheet_index)
    nrows = table.nrows
    # nclos = table.ncols
    # 将每行的信息放入一个字典,再将字典放入一个列表中
    dict = {}
    for rownum in range(1, nrows):
        # print(int(table.cell_value(rownum, 5)))
        if table.cell_value(rownum, 5)== danyuan  and table.cell_value(rownum, 6)==nianji:
            # print('true')
            dict[table.cell_value(rownum, 1).replace('\u200e', '')] = table.cell_value(rownum, 4).replace('\u200e', '')

    return dict
1.6 游戏中提取单词
def setup_word(self, dy=1, year='三年级上册'):
    self.word_dict = getwordzw(u'english.xls', sheet_index=3, danyuan=dy, nianji=year)
    self.word_keys = list(self.word_dict.keys())
    print(self.word_dict)
    print(self.word_keys)
1.7 公共函数整体代码
# 公共函数
import random
import xlrd


def get_data(filename, sheetnum):
    # dir_case = 'F:\\code\\csdn\\cese_excel\\' + filename + '.xlsx'
    dir_case = filename
    data = xlrd.open_workbook(dir_case)
    table = data.sheets()[sheetnum]
    nor = table.nrows
    nol = table.ncols
    dict = {}
    for i in range(1, nor):
        for j in range(nol):
            title = table.cell_value(0, j)
            value = table.cell_value(i, j)
            dict[title] = value
        yield dict


def run_select_school2(filename, sheet_index=0, table_header_row=0):
    # 打开excel文件读取数据,每行一个字典,再总存为序列
    data = xlrd.open_workbook(filename)
    table = data.sheet_by_index(sheet_index)
    nrows = table.nrows
    nclos = table.ncols
    # 获取表头行的信息,为一个字典
    header_row_data = table.row_values(table_header_row)
    # 将每行的信息放入一个字典,再将字典放入一个列表中
    list = []
    for rownum in range(1, nrows):
        rowdata = table.row_values(rownum)
        # 如果rowdata有值,
        if rowdata:
            dict = {}
            for j in range(0, len(header_row_data)):
                dict[header_row_data[j]] = rowdata[j]
            list.append(dict)
    return list


def getwordzw(filename, sheet_index=0, danyuan=1,nianji='三年级上册'):
    # 打开excel文件读取数据,取两列存为字典
    data = xlrd.open_workbook(filename)
    table = data.sheet_by_index(sheet_index)
    nrows = table.nrows
    # nclos = table.ncols
    # 将每行的信息放入一个字典,再将字典放入一个列表中
    dict = {}
    for rownum in range(1, nrows):
        # print(int(table.cell_value(rownum, 5)))
        if table.cell_value(rownum, 5)== danyuan  and table.cell_value(rownum, 6)==nianji:
            # print('true')
            dict[table.cell_value(rownum, 1).replace('\u200e', '')] = table.cell_value(rownum, 4).replace('\u200e', '')
        # print(int(table.cell_value(rownum, 5)))
        # print(danyuan)
        # print(table.cell_value(rownum, 1),table.cell_value(rownum, 5))
        # if int(table.cell_value(rownum, 5))==1:   #(table.cell_value(rownum, 3) != '短语') and
        #     dict[table.cell_value(rownum, 1).replace('\u200e','')] = table.cell_value(rownum, 4).replace('\u200e','')

    return dict


if __name__ == '__main__':
    wordarr = getwordzw(u'english.xls', sheet_index=3, danyuan=1,nianji='三年级上册')
    print(len(wordarr))
    print(wordarr)
    # print(wordarr[1])
    sizi = random.sample(wordarr.keys(), 5)
    # dd = wordarr[sizi[2]]
    print(sizi)

游戏效果

在这里插入图片描述

源码获取

关注博主后,私聊博主免费获取
需要技术指导,育娃新思考,企业软件合作等更多服务请联系博主

今天是以此模板持续更新此育儿专栏的第 31/50次。
可以关注我,点赞我、评论我、收藏我啦。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

信息化未来

你的鼓励将是我创作的最大动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值