这是我的任务,对于我的生活,我似乎无法想办法.这是我到目前为止的代码:
sum = 0
k = 1
while k <= 0.0001:
if k % 2 == 1:
sum = sum + 1.0/k
else:
sum = sum - 1.0/k
k = k + 1
print()
Run Code Online (Sandbox Code Playgroud)
这是我的任务:
创建一个名为sumseries.py的python程序,它执行以下操作:将注释放在程序顶部,并附上您的名称,日期和程序的描述.
编写一个程序来计算和显示系列的总和:
1 - 1/2 + 1/3 - 1/4 + ......
直到达到小于0.0001的期限.
10,000次迭代的答案似乎是0.6930971830599583
我以1,000,000,000(十亿)次迭代运行该程序,并提出了一些0.6931471810606472.我需要创建一个循环来可编程地创建系列.
我试图迭代列表列表中的每一行,将每行中的一个元素附加到新列表中,然后在新列表中查找唯一元素。
我知道我可以使用 for 循环轻松完成此操作。我正在尝试不同的路线,因为我想了解有关类和函数的更多信息。
这是列表列表的示例。第一行是标题:
legislators = [
['last_name', 'first_name', 'birthday', 'gender', 'type', 'state', 'party'],
['Bassett', 'Richard', '1745-04-02', 'M', 'sen', 'DE', 'Anti-Administration'],
['Bland', 'Theodorick', '1742-03-21', '', 'rep', 'VA', ''],
['Burke', 'Aedanus', '1743-06-16', '', 'rep', 'SC', ''],
['Carroll', 'Daniel', '1730-07-22', 'M', 'rep', 'MD', ''],
['Clymer', 'George', '1739-03-16', 'M', 'rep', 'PA', ''],
['Contee', 'Benjamin', '', 'M', 'rep', 'MD', ''],...]
Run Code Online (Sandbox Code Playgroud)
这是我的代码:
import csv
f = open("legislators.csv")
csvreader = csv.reader(f)
legislators = list(csvreader)
class Dataset:
def __init__(self, data):
self.header = data[0] #Isolate header from …Run Code Online (Sandbox Code Playgroud) Stack Overflow 上有很多关于这个一般主题的问答,但它们要么质量很差(通常是初学者的调试问题暗示的),要么以其他方式错过了目标(通常是不够通用)。至少有两种极其常见的方法会使幼稚的代码出错,初学者从关于循环的规范中获益更多,而不是从将问题作为拼写错误或关于打印所需内容的规范中获益。所以这是我尝试将所有相关信息放在同一个地方。
假设我有一些简单的代码,可以对一个值进行计算x并将其分配给y:
y = x + 1
# Or it could be in a function:
def calc_y(an_x):
return an_x + 1
Run Code Online (Sandbox Code Playgroud)
现在我想重复计算 的许多可能值x。我知道for如果我已经有要使用的值列表(或其他序列),我可以使用循环:
xs = [1, 3, 5]
for x in xs:
y = x + 1
Run Code Online (Sandbox Code Playgroud)
while或者,如果有其他逻辑来计算值序列,我可以使用循环x:
def next_collatz(value):
if value % 2 == 0:
return value // 2
else:
return 3 * value + 1
def collatz_from_19():
x = 19
while x != 1:
x …Run Code Online (Sandbox Code Playgroud) 我无法相信,但我被一项非常简单的任务所困扰.
我需要检查,如果值是在字典中的任何键或值.我可以找到密钥使用if 'A' in dictionary,但我似乎无法让它工作values.我意识到我可以使用for循环来做这个,我可以诉诸于此但我想知道是否有内置的方法.
为什么要有__iter__方法?如果一个对象是一个迭代器,那么拥有一个返回自身的方法是没有意义的。如果它不是一个迭代器而是一个可迭代的,即带有__iter__and__getitem__方法的东西,那么为什么要定义一些返回迭代器但不是迭代器本身的东西呢?在 Python 中,何时需要定义一个本身不是迭代器的可迭代对象?或者,什么是可迭代但不是迭代器的示例?
@Padraic Cunningham 如果您想让我删除问题,请告诉我。
我是python的新手。我想根据某些条件跳过一些迭代器值。这在 C 中很容易,但在 python 中我很难。
所以请帮助我理解为什么这里的代码循环 100 次而不是 10 次。
for i in range(100):
print i
i = i +10
Run Code Online (Sandbox Code Playgroud)
编辑:我知道可以选择更改 for 循环的步长。但我对动态更改迭代器变量很感兴趣,就像我们可以在 C 中做的那样。好吧,我明白了,python 中的 for 循环与 C 中的不同。简单的方法是使用 while 循环,我在我的代码中做到了它奏效了。感谢社区!
如果我有代码......
list = ['Clemont', 'Albert', 'Shiro']
for x in range(len(list)):
print(x)
Run Code Online (Sandbox Code Playgroud)
...... x这里的技术术语是什么?我假设它是"迭代对象",但也许这是一种误解; 如果它不是一个误解,什么是迭代对象?
为什么map使用可多次迭代的对象调用时不返回也可多次迭代的对象?我认为后者更为合理。
我的用例是我有很多data,因此只能对其进行迭代。map(理论上)非常适合 上的操作data,因为它是惰性的。然而,在下面的示例中,我希望两次长度相同。
iterable = [1,2,3,4] # this can be iterated repeatedly
m = map(lambda x:x**2, iterable) # this again should be iterable repeatedly
print(len(list(m))) # 4
print(len(list(m))) # 0
Run Code Online (Sandbox Code Playgroud)
如何映射可迭代结构并获取可迭代结构?
编辑: 这是一个恕我直言应该如何工作的示例,演示了惰性评估:
def g():
print('g() called')
data = [g, g]
# map is lazy, so nothing is called
m = map(lambda g: g(), data)
print('m: %s' % len(list(m))) # g() is called here
print('m: %s' % len(list(m))) # this should work, …Run Code Online (Sandbox Code Playgroud) 以下程序是否保证始终产生相同的输出?
s = 'fgvhlsdagfcisdghfjkfdshfsal'
for c in s:
print(c)
Run Code Online (Sandbox Code Playgroud) 与这篇文章类似,但我想对外部源提供的任意列表或单词执行此任务,这些列表或单词可能会根据用户输入而改变。例如,我可能有:
input = ['annotate','color','october','cellular','wingding','appeasement','sorta']
Run Code Online (Sandbox Code Playgroud)
输出应该是
output = ['color','october','wingding','sorta']
Run Code Online (Sandbox Code Playgroud)
任何帮助,将不胜感激!
python ×10
python-3.x ×4
iteration ×2
iterator ×2
class ×1
dictionary ×1
for-loop ×1
iterable ×1
regex ×1