我正在研究用于python的麻省理工学院开放课件,但是在下面的例子中遇到了困难:
首先,我们将使用一些内置的Python函数.要使用这些函数, 请在文件开头包含字符串import*中的语句 .这将允许您使用Python字符串函数.特别是,如果要在目标字符串目标中找到关键字字符串键的第一个匹配的起点,可以使用find函数.尝试运行一些示例,例如find("atgacatgcacaagtatgcat","atgc")注意它如何返回目标中键的第一个实例的索引.另请注意,如果目标中不存在密钥实例,例如find("atgacatgcacaagtatgcat","ggcc"),则返回值-1.
python 2.4(或左右)中的课程,但我正在尝试在Py3中完成任务..学习沿途的差异.
我一直在尝试Counter在Python 3.2中使用该方法,但我不确定我是否正确使用它.知道我为什么会收到这个错误吗?
>>> import collections
>>> Counter()
Traceback (most recent call last):
File "<pyshell#5>", line 1, in <module>
Counter()
NameError: name 'Counter' is not defined
Run Code Online (Sandbox Code Playgroud)
我可以访问Counterif if go collections.Counter(),但不能访问文档中的示例.
我正在学习"绝对初学者的Python编程"并且一直很开心.这本书是为Python 2.7编写的(我认为),但我一直在使用Python 3并翻译代码,这是一个有趣的挑战.
我最近遇到了一个问题,我不知道如何修复.在标记为"Pickling Data并将其写入文件"的部分中,您可以运行以下代码:
import cPickle, shelve
print "Pickling lists." variety = ["sweet", "hot", "dill"]
shape = ["whole", "spear", "chip"]
brand = ["Claussen", "Heinz", "Vlassic"]
pickle_file = open("pickles1.dat", "w")
cPickle.dump(variety, pickle_file)
cPickle.dump(shape, pickle_file)
cPickle.dump(brand, pickle_file)
pickle_file.close()
Run Code Online (Sandbox Code Playgroud)
我把它翻译成了这个(对于python 3)
import pickle, shelve
print ("Pickling lists.")
variety = ["sweet", "hot", "dill"]
shape = ["whole", "spear", "chip"]
brand = ["Classen", "Heinz", "Vlassic"]
pickle_file = open("pickles1.dat", "w")
pickle.dump(variety, pickle_file)
pickle.dump(shape, pickle_file)
pickle.dump(brand, pickle_file)
pickle_file.close()
Run Code Online (Sandbox Code Playgroud)
但是,我从IDLE得到这个错误/输出:
Pickling lists.
Traceback (most recent call last):
File …Run Code Online (Sandbox Code Playgroud) 我有代码:
theory = """}#)$[]_+(^_@^][]_)*^*+_!{&$##]((](}}{[!$#_{&{){
*_{^}$#!+]{[^&++*#!]*)]%$!{#^&%(%^*}@^+__])_$@_^#[{{})}$*]#%]{}{][@^!@)_[}{())%)
())&#@*[#}+#^}#%!![#&*}^{^(({+#*[!{!}){(!*@!+@[_(*^+*]$]+@+*_##)&)^(@$^]e@][#&)(
%%{})+^$))[{))}&$(^+{&(#%*@&*(^&{}+!}_!^($}!(}_@@++$)(%}{!{_]%}$!){%^%%@^%&#([+[
_+%){{}(#_}&{&++!@_)(_+}%_#+]&^)+]_[@]+$!+{@}$^!&)#%#^&+$@[+&+{^{*[@]#!{_*[)(#[[
]*!*}}*_(+&%{&#$&+*_]#+#]!&*@}$%)!})@&)*}#(@}!^(]^@}]#&%)![^!$*)&_]^%{{}(!)_&{_{
+[_*+}]$_[#@_^]*^*#@{&%})*{&**}}}!_!+{&^)__)@_#$#%{+)^!{}^@[$+^}&(%%)&!+^_^#}^({
*%]&@{]++}@$$)}#]{)!+@[^)!#[%@^!!"""
#theory = open("temp.txt")
key = "#@!$%+{}[]_-&*()*^@/"
new2 =""
print()
for letter in theory:
if letter not in key:
new2 += letter
print(new2)
Run Code Online (Sandbox Code Playgroud)
这是解决python挑战的测试代码#2:http://www.pythonchallenge.com/pc/def/ocr.html
唯一的麻烦是,我写的代码似乎留下了很多空白,但我不确定为什么.
关于如何去除不必要的白色的任何想法?换句话说,我希望代码返回"e"而不是"e".
我正在尝试分析一系列密码的频率。我的脚本正在使用其他输入媒体,但是我当前的数据集中似乎有一些错误的字符。如何绕过“坏”数据?
import re
import collections
words = re.findall('\w+', open('rockyou.txt').read().lower())
a=collections.Counter(words).most_common(50)
for word in a:
print(word)
Run Code Online (Sandbox Code Playgroud)
然后我得到错误:
Traceback (most recent call last):
File "shakecount.py", line 3, in <module>
words = re.findall('\w+', open('rockyou.txt').read().lower().ASCII)
File "/Library/Frameworks/Python.framework/Versions/3.2/lib/python3.2/codecs.py", line 300, in decode
(result, consumed) = self._buffer_decode(data, self.errors, final)
UnicodeDecodeError: 'utf8' codec can't decode byte 0xf1 in position 5079963: invalid continuation byte
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?