文档章节

笨方法学python V

渺渺星辰
 渺渺星辰
发布于 2017/07/19 17:26
字数 2252
阅读 5
收藏 0

36.笨办法学 Python-第三十六题

#!/usr/bin/python
#coding=utf-8
#笨办法学 Python-第三十六题
#超级简单的程序
print '编写一个类似于实例35的程序,让其跑起来'

def start():
    print 'you have a diffrent life when you are graduated.'
    choose=['study','work']
    print 'you can choose:'+ choose[0]+'\t'+choose[1]
    next=raw_input("> ")
    if next=='study':
        print 'you will go to study again'
        study()
    elif next=='work':
        print 'you will work now'
        work()
    else:
         print 'you maybe don not choose !'

def study():
    print 'you will choose board or china?'
    next=raw_input(">")
    if next=='china':
        print '你将有一个更高的学历,但是时间会很长'
    elif next=='board':
        print '你将出国深造,你将来会是一个海龟'
        print '你可以去 %s' %['usa','uk','other']
        next=raw_input('>')
        if next=='usa':
            print 'you have make more money'
        elif next=='uk':
            print 'you have good work'
        elif next=='other':
            print '可能比呆在国内好一点'
        else:
            print '也许你是在浪费时光'
    else:
        print '你是在混日子'
def work():
    print 'congratation,you choose work.'
    print 'you can choose blue or white?'
    next=raw_input(">")
    if next=="blue":
        print 'the work is hard.'
    elif next=="white":
        print '你是高收入人群'
    else:
        print '你在默默奉献自己'

start()

知识点:学习相关程序设计

If 语句的规则

1). 每一个“if 语句”必须包含一个 else.

2). 如果这个 else 永远都不应该被执行到,因为它本身没有任何意义,那你必须在else 语句后面使用一个叫做 die 的函数,让它打印出错误信息并且死给你看,这和上一节的习题类似,这样你可以找到很多的错误。

3). “if 语句”的嵌套不要超过 2 层,最好尽量保持只有 1 层。 这意味着如果你在 if 里边又有了一个 if,那你就需要把第二个 if 移到另一个函数里面。

4). 将“if 语句”当做段落来对待,其中的每一个 if, elif, else 组合就跟一个段落的句子组合一样。在这种组合的最前面和最后面留一个空行以作区分。

5). 你的布尔测试应该很简单,如果它们很复杂的话,你需要将它们的运算事先放到一个 变量里,并且为变量取一个好名字

循环的规则

1). 只有在循环永不停止时使用“while 循环”,这意味着你可能永远都用不到。这条只有Python 中成立,其他的语言另当别论。

2). 其他类型的循环都使用“for 循环”,尤其是在循环的对象数量固定或者有限的情况下。

调试(debug)的小技巧

1). 不要使用 “debugger”。 Debugger 所作的相当于对病人的全身扫描。你并不会得到某方面的有用信息,而且你会发现它输出的信息态度,而且大部分没有用,或者只会让你更困惑。

2). 最好的调试程序的方法是使用 print 在各个你想要检查的关键环节将关键变量打印出来,从而检查哪里是否有错。

3). 让程序一部分一部分地运行起来。不要等一个很长的脚本写完后才去运行它。写一点,运行一点,再修改一点。

运行结果:根据选择的不同,而结果不同.

 

37.笨办法学 Python-第三十七题

#!/usr/bin/python
#coding=utf-8
#笨办法学 Python-第三十七题
#复习所有的字符(实例3中已经列出一部分)

print '''
关键字
1.逻辑预算符: and  or not
2.模块的引用:from   import   as(别名)
3.循环语句: for  while
4.条件判断: if  elif  else  break continue pass
5.异常处理: try finally raise execpt
6.匿名函数: lambda ---->lambda x:x+1
7.删除:del
8.函数相关:def return  class
9.成员判断: is  in
10打印:exec  print

11.yield:类似于return,告诉程序,要求函数返回一个生成器
def createGenerator() :
    mylist = range(3)
    for i in mylist :
        yield i*i

12.assert:断言,这个关键字用来在运行中检查程序的正确性,和很多其他语言是一样的作用:
---->assert len(mylist) >= 1

13.with
它实质是一个控制流语句,with可以用来简化try-finally语句。它的主要用法是实现一个类__enter__()和__exit__()方法
class controlled_execution:
    def _enter__(self):
        set things up
        return thing
    def __exit__(self, type, value,  traceback):
        tear thing down
with controlled_execution() as thing:
    some code

14.global: 定义全局变量


字符转义:
1."\\"---->\
2."\'" ---->'
3."\"" ---->"
4."\a" ---->响铃
5."\b" ---->退格(Backspace)
6."\f" ---->换页
7."\n" ---->换行
8."\r" ---->回车
9."\t" ---->tab
10."\v"---->纵向制表符

格式化输出:
%s    字符串 (采用str()的显示)
%r    字符串 (采用repr()的显示)
%c    单个字符
%b    二进制整数
%d    十进制整数
%i    十进制整数
%o    八进制整数
%x    无符号整数(十六进制)
%X    无符号整数(十六进制大写字符)
%e    指数 (基底写为e)
%E    指数 (基底写为E)
%f    浮点数
%F    浮点数,与上相同
%g    指数(e) 或浮点数 (根据显示长度)
%G    指数(E)或浮点数 (根据显示长度)
%%    字符"%"

操作符号:
 +(加)    -(减)    *(乘)   *(幂)   /(除)    //(商)    %(取余)

 <(小于)  >(大于)   <=(小于等于)    >=(大于等于)  ==(等于)  !=(不等于)<>

  ( ) (小括号)   [ ] (中括号)   { }(大括号)

 @   ,(逗号)   :(冒号)    .(点)   =(赋值)   ;(分号)

 +=(加等于)   -=(减等于)    *=(乘等于)   /=(除等于)   //=(商等于)   %=(取余等于)

 **=(幂等于)
'''

知识点:学习所有的符号

38.笨办法学 Python-第三十八题

#!/usr/bin/python
#coding=utf-8
#笨办法学 Python-第三十八题
#阅读代码
print '''
然后通读你打印出来的代码并做好标记,标记的内容包括以下几个方面:

   1. 函数以及函数的功能。
   2. 每个变量的初始赋值。
   3. 每个在程序的各个部分中多次出现的变量。它们以后可能会给你带来麻烦。
   4. 任何不包含 else 的 if 语句。它们是正确的吗?
   5. 任何可能没有结束点的 while 循环。
   6. 最后一条,代码中任何你看不懂的部分都记下来

接下来你需要通过注解的方式向自己解释代码的含义。解释各个函数的使用方法,各个变量的用途,以及任何其它方面的内容,只要能帮助你理解代码即可。
最后,在代码中比较难的各个部分,逐行或者逐个函数跟踪变量值。你可以再打印一份出来,在空白处写出你要“追踪”的每个变量的值。

'''

知识点:阅读大量的代码

39.笨办法学 Python-第三十九题

#!/usr/bin/python
#coding=utf-8
#笨办法学 Python-第三十九题
#列表的操作
ten_thing='a b c d e f g h'
print 'wait,there are not 10 thing in that list,let us fix that'

suff=ten_thing.split(' ')
more_stuff=["day",'night','song','frisbee','cron','banana','gril','boy']
while len(suff)!=10:
    next_one=more_stuff.pop()
    print 'adding: ',next_one
    suff.append(next_one)
    print 'there are %d items now.' %len(suff)

print 'there we go: ',suff
print 'let us do some things with suff'

print suff[1]              #查看下标为1的元素
print suff[-1]             #查看最后一个元素
print suff.pop()           #移除最后一个元素,并打印出最后一个元素
print ' '.join(suff)       #查看suff并且以' '分隔
print '#'.join(suff[3:5])  #切片处理并且以#好分隔

print '''
关于函数的方法的细节认识:
>>> class Thing(object):
...     def test(hi):
...         print "hi"
...
>>> a = Thing()
>>> a.test("hello")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: test() takes exactly 1 argument (2 given)

报错:test()只可以接受 1 个参数,实际上给了两个.它意味着 python 把 a.test("hello") 改成
了 test(a, "hello"),而有人弄错了,没有为它添加 a 这个参数.

改为: def test(self,hi):
         print hi
'''

知识点:列表的操作

运行结果:

wait,there are not 10 thing in that list,let us fix that
adding:  boy
there are 9 items now.
adding:  gril
there are 10 items now.
there we go:  ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'boy', 'gril']
let us do some things with suff
b
gril
gril
a b c d e f g h boy
d#e

关于函数的方法的细节认识:
>>> class Thing(object):
...     def test(hi):
...         print "hi"
...
>>> a = Thing()
>>> a.test("hello")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: test() takes exactly 1 argument (2 given)

报错:test()只可以接受 1 个参数,实际上给了两个.它意味着 python 把 a.test("hello") 改成
了 test(a, "hello"),而有人弄错了,没有为它添加 a 这个参数.

改为: def test(self,hi):
         print hi

 

40.笨办法学 Python-第四十题

#!/usr/bin/python
#coding=utf-8
#笨办法学 Python-第四十题
#字典的学习
cities={'ca':'SF','mi':'MI','fl':'FL'}
cities['ny']='NY'
cities['or']='OR'
def find_city(list,key):
    if key in list:
        return list[key]
    else:
        return 'not found'
cities['_find']=find_city #将函数名赋值到列表中
print cities
while True:
    print 'state?(enter to quit)',
    key=raw_input('> ')
    if not key: break
    city_found=cities['_find'](cities,key)
    print city_found

知识点:字典的定义操作

#遍利列表中的key和valus值

for key in cities:

    print key

    print cities[key]

运行结果:输入key值返回values

 

© 著作权归作者所有

上一篇: 笨方法学python VI
下一篇: 笨方法学python IV
渺渺星辰
粉丝 3
博文 33
码字总数 34632
作品 0
海淀
私信 提问
20 本优秀的 Python 电子书

想要学习Python编程语言的读者有大量相关书籍可供选择,有印刷版也有电子版,而Python是一门开源的编译语言,开发者也提供了不少免费可自由下载的Python电子书。本文挑选其中最优秀的20本Pyt...

oschina
2012/12/30
11.4K
19
无法理解有关Python字典/hash的一段代码

我正在用Learn Python The Hard Way(笨方法学Python)入门Python,这也是我学习编程的第一个语言。今天遇到一个问题,查了很久的谷歌还是无法解决。 链接在这里: http://learnpythonthehar...

好好先生_1028
2015/06/29
440
2
python-35:urllib 和 urllib2 模块

首先,urllib 和 urllib2 是python 自带的模块,所以我们可以通过官网文档来查看它们的详细信息,这里依然给出网址,感兴趣的同学可以看一下 urllib模块:http://python.usyiyi.cn/python278...

达岭凹老大
2015/12/01
329
0
我们可以在同一个虚拟机中运行 Python 2 和 3 代码而不需要更改代码吗?

从理论上来说,可以。Zed Shaw 说过一句著名的话,如果不行,那么 Python 3 一定不是图灵完备的。但在实践中,这是不现实的,我将通过给你们举几个例子来说明原因。 对于字典(dict)来说,这...

作者: Łukasz Langa
2018/05/08
0
0
[深度基础]·小白如何快速入门深度学习

[深度基础]·小白如何快速入门深度学习 个人主页--> https://xiaosongshine.github.io/ 随着近年深度学习的兴起,很多研究者都投入这个领域当中,由于各个大学都将自己的课程放到了网上,出现...

小宋是呢
03/26
0
0

没有更多内容

加载失败,请刷新页面

加载更多

CentOS7.6中安装使用fcitx框架

内容目录 一、为什么要使用fcitx?二、安装fcitx框架三、安装搜狗输入法 一、为什么要使用fcitx? Gnome3桌面自带的输入法框架为ibus,而在使用ibus时会时不时出现卡顿无法输入的现象。 搜狗和...

技术训练营
昨天
5
0
《Designing.Data-Intensive.Applications》笔记 四

第九章 一致性与共识 分布式系统最重要的的抽象之一是共识(consensus):让所有的节点对某件事达成一致。 最终一致性(eventual consistency)只提供较弱的保证,需要探索更高的一致性保证(stro...

丰田破产标志
昨天
8
0
docker 使用mysql

1, 进入容器 比如 myslq1 里面进行操作 docker exec -it mysql1 /bin/bash 2. 退出 容器 交互: exit 3. mysql 启动在容器里面,并且 可以本地连接mysql docker run --name mysql1 --env MY...

之渊
昨天
10
0
python数据结构

1、字符串及其方法(案例来自Python-100-Days) def main(): str1 = 'hello, world!' # 通过len函数计算字符串的长度 print(len(str1)) # 13 # 获得字符串首字母大写的...

huijue
昨天
6
0
PHP+Ajax微信手机端九宫格抽奖实例

PHP+Ajax结合lottery.js制作的一款微信手机端九宫格抽奖实例,抽奖完成后有收货地址添加表单出现。支持可以设置中奖概率等。 奖品列表 <div class="lottery_list clearfix" id="lottery"> ......

ymkjs1990
昨天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部