2019独角兽企业重金招聘Python工程师标准>>>

转自:http://www.cnblogs.com/chagel/archive/2009/02/01/1381820.html

本文给出两道趣味题的Python解法题目1:要求算一任意长度字符串中不同的字符以及它的个数。题目2:把一段字符串用“右起竖排”的古文格式输出。

题目难度不大,都是针对字符串的操作,逻辑比较简单,灵活在对不同语言、语法的掌握程度。

看了大家用C++、C#、Java等语言的实现,总感觉牛刀杀鸡太麻烦,有兴趣的朋友可以自己写写看或者直接看原文的网友回复。我最近一段时间Python写的比较多,读到这些题目时候,就有一种跃跃欲试的冲动。因为我知道用Perl,Python,Ruby等动态语言来做这类题目,会是非常理想的。后来我做了这两道题目,结果也令人满意,代码之简洁保持在所有答案的前列。

先看第一题Python解答:

dic = {}
for s in "abcdefgabc":dic[s] = 1 if s not in dic else (dic[s]+1)
print '\n'.join('%s,%s' % (k, v) for k, v in dic.items())

输出结果:

a,2
c,2
b,2
e,1
d,1
g,1
f,1

Python的四行代码分别做了dictionary的声明,赋值,字符串的遍历,以及高效拼接。

如果还没有看出它的简洁和强大的话,请看第二题的解法:

def main(offset=6):
    string = u'静夜思 李白床前明月光,疑似地上霜。举头望明月,低头思故乡。090131'a = [[' ']*offset for row in xrange(offset)]for i in xrange(offset):for j in xrange(offset):a[i][j] = string[j + i*offset]b = [[r[col] for r in a[::-1]] for col in xrange(len(a[0]))]
    print '\n'.join([u'┊'.join(unicode(c) for c in row)for row in b])

输出结果:

0┊低┊举┊疑┊床┊静9┊头┊头┊似┊前┊夜0┊思┊望┊地┊明┊思1┊故┊明┊上┊月┊ 3┊乡┊月┊霜┊光┊李1┊。┊,┊。┊,┊白

这题如果用C#等实现,代码要在20行以上。下面我简单介绍一下这几行代码:

  1. 第3行,在Python里面二维“数组”通过嵌套list来实现,这里初始化一个6行6列的二维数组;
  2. 第7行,我们把“矩阵”顺时针旋转了90度(行列置换,并且对置换后的行首尾对调-这里的::-1就是用来置换一个list的trick);
  3. 最后一行,我们把数组里的每行中元素,每行之间分别用两个不同字符拼接起来。join方法以及for..in..语句在python中是相当常见的用法。

通过这两题,我们看到Python在处理字符串时候的十分灵活方便,虽然一种语言的好坏不应完全靠是否简洁来衡量,但对于我个人而言,Python是目前我用过的最好的语言。而且对于趣味题来说,这不就是我们解题的趣味所在吗?

转载于:https://my.oschina.net/flynewton/blog/9989

从CSDN的趣味题学PYTHON相关推荐

  1. python趣味题_从CSDN的趣味题学PYTHON

    转自:http://www.cnblogs.com/chagel/archive/2009/02/01/1381820.html 本文给出两道趣味题的Python解法 题目1:要求算一任意长度字符串中 ...

  2. 程序员,别再无脑刷题了,这样学 Python,编程能力暴增!

    听说 Python 很难学?难在哪里?听说学完不知道做什么?为什么?Python 该怎么学?好不好学?学完做什么?许多人都会遇到了下面这些问题--1. 没经验根本不知道从何学起,而且应用方向太多了也不 ...

  3. CSDN博客第一期订阅专栏:跟“风云卫星”数据工程师学Python

    在大伙的期盼中,CSDN博客第一期订阅专栏来啦!我们邀请了许向武老师,为大家分享的主题为:跟"风云卫星数据"工程师学Python. 作者简介 许向武:擅长Python语言编程,有超 ...

  4. 零基础学python全彩版pdf-(特价书)零基础轻松学Python:青少年趣味编程(全彩版)...

    基本信息 作者: 快学习教育 出版社:机械工业出版社 ISBN:9787111640004E上架时间:2020-5-26出版日期:2019 年11月开本:16开页码:176版次:1-1 所属分类: 科 ...

  5. python编程狮app题库_‎Python编程狮-零基础学Python im App Store

    Python编程狮是W3Cschool编程狮旗下专门为零基础Python编程爱好者打造的一款入门工具App,致力于帮助初学者入门,轻松迈入编程世界.学Python,从这里开始! [零基础也能学]初学者 ...

  6. python编程狮题库答案_‎Python编程狮-零基础学Python dans l’App Store

    Python编程狮是W3Cschool编程狮旗下专门为零基础Python编程爱好者打造的一款入门工具App,致力于帮助初学者入门,轻松迈入编程世界.学Python,从这里开始! [零基础也能学]初学者 ...

  7. python编程狮app题库_‎Python编程狮-零基础学Python App Storessa

    Python编程狮是W3Cschool编程狮旗下专门为零基础Python编程爱好者打造的一款入门工具App,致力于帮助初学者入门,轻松迈入编程世界.学Python,从这里开始! [零基础也能学]初学者 ...

  8. python科目真题_不止金融行业, 全民都在学Python

    在大家的印象里,想进入金融行业或者数据岗位,首先需要精通Excel. 然而野村证券副首席数字官马修·汉普森在上周五的伦敦Quant Conference上发表讲话: "现在走进交易大厅,用E ...

  9. 少儿编程之旅 趣学Python,小学生python趣味编程PPT

    中小学生如何学习Python编程? 一.中小学生接触电脑的时间很少,所以要经常操作电脑,熟悉电脑的操作,查资料,环境变量,命令行等等.二.编程需要一些英语基础,不用很厉害,但是至少要能看懂一些简单的互 ...

最新文章

  1. python线程的注意点(线程之间执行是无序的、主线程会等待所有的子线程执行结束再结束(守护主线程)、线程之间共享全局变量、线程之间共享全局变量数据出现错误问题(线程等待(join)、互斥锁))
  2. Python3中的装饰器
  3. 粗选公式-通达信(东方财富网)
  4. Dynamic CRM 2013学习笔记(四十三)流程6 - 自定义流程活动
  5. wxWidgets:wxPropertyGridManager类用法
  6. s5p4418 android 驱动 hal 应用之led 串口 rs485 can总线应用(app 有源码)
  7. Lync 服务器证书 ios,iOS生成服务器所需证书pem或P12
  8. ASP.NET MVC 3: Razor视图引擎中 @: 和text 语法【转载】
  9. leetcode 802. 找到最终的安全状态(Find Eventual Safe States)
  10. Semaphore (信号量)
  11. 世界上最贵的车是直通车吗?
  12. 生成html数据字典,PHP生成html格式数据字典
  13. Linux下编写简易取号机系统,linux socket编程问题,下面是我做的一个简单的模拟银行排队叫号系统。...
  14. 华为云NP考试题库_华为np题库
  15. 指数函数e^x和对数函数lnx 导数的求导过程
  16. vue使用高德地图获取当前经纬度
  17. 多余元素删除(多种代码)
  18. shell双引号、单引号、反撇号的使用
  19. [agc015f]Kenus the Ancient Greek
  20. 大数据学习之Hive

热门文章

  1. 第二讲 完全背包问题(对背包九讲的学习)
  2. xcode symbol(s) not found for architecture i386错误解决方法
  3. linux中解决SSH连接慢问题
  4. KVM虚拟机安装管理——qemu-kvm方式
  5. kettle内存溢出
  6. 微信和支付宝支付模式详解及实现(.Net标准库)
  7. 快速生成apk 自动发布到网站 便于测试
  8. 车辆管理系统之继续自己的任务(四)
  9. 史上最全的Web性能测试工具大全(下 )
  10. 通过System.Management获取操作系统信息