怎么调用另一个程序里的字典

怎么调用另一个程序里的字典,第1张

我有一个if语句来检查另一个模块的字典,看看它是否包含恰好有一个函数作为其值的关键字。该函数从未明确调用过,但是在程序启动之前执行,甚至发生任何事情。这不是理想的行为,应该永远不会调用函数。如果关键字在字典中,所有应该发生的事情是程序向终端打印“良好”。难道我做错了什么?我一直在互联网上搜寻几个小时,我的脑子很痛: 从'source.py':

import commands

game_state = 'playing'

while game_state == 'playing':

player_input = raw_input('>>')

if player_input == 'quit':

break

elif player_input in commands.command_list:

print 'good'

从'commands.py':

def one():

print '1'

command_list = {'one' : one()}

最后,在输入函数名后输入终端:

1

>>one

good

>>_

'1'在一开始不应该在那里,因为这个功能从来没有被实际称为...对吗?我无法弄清楚这一点

列表就是数据排列的形式,集合,字典也是一样的。

为了构建列表、集合或字典,Python 提供了名为“显示”的特殊句法,每个类型各有两种形式:

第一种是显式地列出容器内容

第二种是通过一组循环和筛选指令计算出来,称为 推导式。

推导式的结构是一个单独表达式后面加至少一个 for 子句以及零个或更多个 for 或 if 子句。 在这种情况下,新容器的元素产生方式是将每个 for 或 if 子句视为一个代码块,按从左至右的顺序嵌套,然后每次到达最内层代码块时就对表达式进行求值以产生一个元素。

不过,除了最左边 for 子句中的可迭代表达式,推导式是在另一个隐式嵌套的作用域内执行的。 这能确保赋给目标列表的名称不会“泄露”到外层的作用域。

最左边的 for 子句中的可迭代对象表达式会直接在外层作用域中被求值,然后作为一个参数被传给隐式嵌套的作用域。 后续的 for 子句以及最左侧 for 子句中的任何筛选条件不能在外层作用域中被求值,因为它们可能依赖于从最左侧可迭代对象中获得的值。 例如: [x*y for x in range(10) for y in range(x, x+10)]。

为了确保推导式得出的结果总是一个类型正确的容器,在隐式嵌套作用域内禁止使用 yield 和 yield from 表达式。

从 Python 3.6 开始,在 async def 函数中可以使用 async for 子句来迭代 asynchronous iterator。 在 async def 函数中构建推导式可以通过在打头的表达式后加上 for 或 async for 子句,也可能包含额外的 for 或 async for 子句,还可能使用 await 表达式。 如果一个推导式包含 async for 子句或者 await 表达式,则被称为 异步推导式。 异步推导式可以暂停执行它所在的协程函数。

编写字典程序:

1. 用户添加单词和定义

2. 查找这些单词

3.如果查不到,请让用户知道

4. 循环

#coding:utf-8

# 字典创建  while开关 字典添加   字典寻找

dictionary = {}

flag = 'a'

pape = 'a'

off = 'a'

while flag == 'a' or 'c' :

flag = input("添加或查找单词 ?(a/c)")

if flag == "a" :                             # 开启

word = input("输入单词(key):")

defintion = input("输入定义值(value):")

dictionary[str(word)] = str(defintion)  # 添加字典

print "添加成功!"

pape = input("您是否要查找字典?(a/0)")   #read

if pape == 'a':

print dictionary

else :

continue

elif flag == 'c':

check_word = input("要查找的单词:")  # 检索

for key in sorted(dictionary.keys()):            # yes

if str(check_word) == key:

print "该单词存在! " ,key, dictionary[key]

break

else:                                       # no

off = 'b'

if off == 'b':

print "抱歉,该值不存在!"

else:                               # 停止

print "error type"

break

测试输入:

添加或查找单词 ?(a/c)a

输入单词(key):runoob

输入定义值(value): www.runoob.com

添加成功!

您是否要查找字典?(a/0)0

添加或查找单词 ?(a/c)c

要查找的单词:runoob

该单词存在!  runoob www.runoob.com

添加或查找单词 ?(a/c)


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11571290.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-17
下一篇 2023-05-17

发表评论

登录后才能评论

评论列表(0条)

保存