发现了一个好玩的闯关游戏~刚好对python有兴趣就顺便学学咯~
期间除了有源代码还有一些python的学习笔记
http://www.pythonchallenge.com/
第二关我感觉用的知识就比较多一些了(至少对我这种新手来说),在开始之前,有必要说一下这几个新知识(就当积累知识了~)。
1.raw string(原字符串)
像c语言有一些转义字符(\n,\t)等,但是如果我们就是想原样输出整个字符串,比如说
str = "\n\t\b\\\\\\"
c语言的处理办法就是在\前边再加一个\但是如果数据量很大的话就比较麻烦了。python可以简单一些,直接在字符串前边加上r
<span style="font-family:Microsoft YaHei;font-size:14px;"> str = r"\n\t\b\\\\\"</span>
这样直接输出str就是原样的。
2. \ (续行符)
如果str很长,不方便看的时候通常都是想着分成两行或者更多,但是在python中如果单纯按回车分成两行会提示错误。
str = "adsadasdasdasdasdasdas
dadasdasdasdas"
这样是不允许的,但是只要在每一行的后边加一个续行符\就可以了
str = "adsadasdasdasdasdasdas\
dadasdasdasdas"
PS:续行符和raw string一起用是不可以的,优先以r为准,比如说:
str = r"adsadasdasdasdasdasdas\
dadasdasdasdas"
输出的是:
adsadasdasdasdasdasdas\
dadasdasdasdas
所以遇到大数据又换行又有转义字符的时候,就该用读写文件的方式了(就是这一关.....数据量太大了)
3.读写文件
这个小细节很多,建议看这里。
http://www.w3cschool.cc/python/python-files-io.html
4.字典(python数据类型的一个很大的特点)
详解的话一篇博客肯定不够,而且很多我也不会...附上链接
http://www.w3cschool.cc/python/python-dictionary.html
好了我们看题目~
提示说让我们辨认字符,可能在书里,也可能在源页上(源代码)。书上是完全看不清楚...然后就查看网页源代码,细细找,会发现这一句
好吧看来是让我们统计下面乱糟糟的文本中哪个字符出现的次数最少了,开~
read = open(r"read.txt","r") #文件中读取数据,千万不要忘记用r(raw string)
#此处用open(r"c:\\read.txt","r")是错误的不知为何
dictionary = {} #创建空字典,注意是花括号
for line in read:
for char in line :
#此处写for char in line and char != '\n'提示错误没有定义char
if char in dictionary and char != '\n':
dictionary[char] += 1
else:
dictionary[char] = 1
for i in dictionary:
print("%s : %d" % (i, dictionary[i]))
# print(i,dictionary[i])
#以上两种都可以,注意第一种输出方式中间的%千万不要漏掉
最后得出的结果是:
{ : 6046
y : 1
} : 6105
q : 1
u : 1
t : 1
+ : 6066
* : 6034
) : 6186
( : 6154
l : 1
# : 6115
a : 1
! : 6079
e : 1
$ : 6046
[ : 6108
_ : 6112
^ : 6030
] : 6152
i : 1
& : 6043
: 1
% : 6104
@ : 6157
最少的字符有yqutlaei ‘ ’这几个
我就想这应该是拼成一个词组或者单词什么的吧
我想到了quality...但是还是少个e和空格啊...
哦..equality..想到了,应该是这个,更改URL~过关!