The python challenge 02————字典、读写文件、raw string

本文分享了Python编程中的一些实用技巧,包括使用rawstring、续行符、读写文件操作、字典应用等,并通过解析文本文件内容,找出字符出现次数最少的几个,最终解谜过关。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

发现了一个好玩的闯关游戏~刚好对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~过关!



  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值