numOfYears = 0
cpi = eval(input("Enter the CPI for July 2015: "))
if cpi.isdigit():
while cpi < (cpi * 2):
cpi *= 1.025
numOfYears += 1
print("Consumer prices will double in " + str(numOfYears) + " years.")
while not cpi.isdigit():
print("Bad input")
cpi = input("Enter the CPI for July 2015: ")
Run Code Online (Sandbox Code Playgroud)
我收到以下错误.
AttributeError:'int'对象没有属性'isdigit'
由于我是编程新手,我真的不知道它想告诉我什么.我正在使用它if cpi.isdigit():
来检查用户输入的内容是否是有效数字.
我可以创建一个if语句,打赌可能有更好的方法.
我有一个值列表,如:
values = [1, 2, 3, 4]
Run Code Online (Sandbox Code Playgroud)
我想尝试这个列表上的所有组合,如:
1 + 2
1 + 3
1 + 4
1 * 2
1 * 3
1 * 4
1 + 2 * 3
1 + 2 * 4
1 + 3 * 4
Run Code Online (Sandbox Code Playgroud)
等等
以最简洁的方式获得所有这些可能的操作组合的最直接的方法是什么?
我想象有两个列表,[1,2,3,4]和[+,*, - ,/]然后取所有长度的所有组合,然后用所有组合填充空白.
因此,选择[1,2,3],然后选择操作的所有排列并将它们组合在一起.这看起来很混乱,我希望有一个更清晰的方法来编码吗?
我经常想创建一个字典,其中键是变量名。例如,如果我有变量a
并且b
我想生成:({"a":a, "b":b}
通常在函数末尾返回数据)。
python中是否有任何(理想情况下内置的)方法可以自动执行此操作?即有一个函数,这样create_dictionary(a,b)
返回{"a":a, "b":b}
我正在尝试从环境变量中读取 python 脚本中的字典。
这是我的 python 脚本的代码:
desired_cap_default = [
{'platform': 'Windows 7', 'browserName': 'firefox', 'version': '24.0'},
{'platform': 'OS X 10.10', 'browserName': 'chrome', 'version': '45.0'},
{'platform': 'Windows XP', 'browserName': 'chrome', 'version': '40.0'},
{'platform': 'OS X 10.10', 'browserName': 'safari', 'version': '8.0'},
# {'platform': 'Windows XP', 'browserName': 'firefox', 'version': '10.0', 'screenResolution': '1600x1200',
# 'videoUploadOnPass': False, 'commandTimeout': 120}
]
browser = os.getenv('TESTING_BROWSERS', desired_cap_default)
Run Code Online (Sandbox Code Playgroud)
这就是我指定环境变量的方式(但没有将其识别为字典)
TESTING_BROWSERS="[{'platform': 'Windows 7', 'browserName': 'firefox', 'version': '24.0'}, \
{'platform': 'OS X 10.10', 'browserName': 'chrome', 'version': '45.0'}, \
{'platform': 'Windows XP', …
Run Code Online (Sandbox Code Playgroud) 我尝试在函数的局部范围内使用eval()。但是,它始终在全局范围内进行评估。
自包含的示例:
1-此代码有效:
var1 = 1
var2 = 2
var3 = 3
myDict = dict((name, eval(name)) for name in ["var1",
"var2",
"var3"])
print(myDict["var1"])
Run Code Online (Sandbox Code Playgroud)
2-抛出NameError
为lvar1
def test1():
lvar1 = 1
lvar2 = 2
lvar3 = 3
myDict = dict((name, eval(name)) for name in ["lvar1",
"lvar2",
"lvar3"])
print(myDict["lvar1"])
Run Code Online (Sandbox Code Playgroud)
3-与2相同的结果。
def test2():
lvar1 = 1
lvar2 = 2
lvar3 = 3
myDict = dict((name, eval(name), locals()) for name in ["lvar1",
"lvar2",
"lvar3"])
print(myDict["lvar1"])
Run Code Online (Sandbox Code Playgroud) 我以列表列表的形式收集数据,并将数据写入文本文件.文本文件中的数据看起来像
[[123231,2345,888754],[223467,85645]]
Run Code Online (Sandbox Code Playgroud)
我想把它读回来并存储在我的程序列表中.但是当我read()
从文件中创建并尝试创建一个平面列表时,它将所有内容都作为一个字符串,并且解释完全改变,并且我无法查询我在阅读作为python中的正常列表列表后获得的结果.
有人可以帮我阅读文件并以与列表列表相同的格式存储吗?
谢谢!
我需要一个函数,它将python的运算符符号或关键字之一作为字符串,连同其操作数,对其进行求值,并返回结果.像这样:
>>> string_op('<=', 3, 3)
True
>>> string_op('|', 3, 5)
7
>>> string_op('and', 3, 5)
True
>>> string_op('+', 5, 7)
12
>>> string_op('-', -4)
4
Run Code Online (Sandbox Code Playgroud)
不能认为该字符串是安全的.我只对映射二元运算符感到满意,但如果能得到所有这些运算符,我会非常高兴.
import operator
def string_op(op, *args, **kwargs):
"""http://docs.python.org/2/library/operator.html"""
symbol_name_map = {
'<': 'lt',
'<=': 'le',
'==': 'eq',
'!=': 'ne',
'>=': 'ge',
'>': 'gt',
'not': 'not_',
'is': 'is_',
'is not': 'is_not',
'+': 'add', # conflict with concat
'&': 'and_', # (bitwise)
'/': 'div',
'//': 'floordiv',
'~': 'invert',
'%': 'mod',
'*': …
Run Code Online (Sandbox Code Playgroud) 我有一个 json 字符串存储在数据库中,当它被拉出并显示在模板上时,它是一个字符串。我想将其转换为字典对象,以便我可以直接访问内容。
字符串 = "{'a':1, 'b':3}"
{{ obj }} ---> 字符串 "{'a':1, 'b':3}"
{{ obj.b }} ---> 我想像对象一样访问它。
我想从Python中的两个字符串创建一个变量名,例如:
a = "column_number"
b = "_url1"
Run Code Online (Sandbox Code Playgroud)
然后能够获得"column_number_url1"
我可以使用的变量名称.
我很欣赏这一般不是一个好主意 - 有很多帖子说明为什么这是一个坏主意(例如我如何创建可变数量的变量?,创建多个变量) - 我主要希望能够做到因为这些都是在代码中的其他地方定义的变量,并且想要一种能够重新访问它们的简单方法(即,而不是创建数以千计的唯一变量,我同意字典等会更好) .
据我所知,我发现的其他帖子中的答案都是替代方法,而不是如何从两个字符串创建变量名称.
python ×10
bash ×1
combinations ×1
eval ×1
file ×1
flask ×1
idioms ×1
jinja2 ×1
list ×1
nonetype ×1
python-2.7 ×1
python-3.x ×1
scope ×1