Python学习笔记

004讲:改进我们的小游戏


课堂笔记:

0.while造成死循环的原因:

while 后边的条件永远为真(True),在 Python 看来,只有以下内容会被看作假(注意冒号括号里边啥都没有,连空格都不要有!):False None 0 "" '' () [] {}

其他一切都被解释为真!

1.一行书写多个语句需要用分号隔开

2.一行过长的语句可以使用反斜杠或者括号分解成几行

(1)>>> 3 > 4 and \

         1 < 2

(2)>>> ( 3 > 4 and 

        1 < 2 )

3.python 短路逻辑和条件表达式

  布尔运算符有个有趣的特性:只有在需要求值时才进行求值。举例来说,表达式x and y需要两个变量都为真时才为真,所以如果x为假,表达式就会立刻返回false,而不管y的值(事实上各个语言都有这个特性)。实际上,如果x为假,表达式会返回x得值----否则它就返回y的值。这种行为被称为短路逻辑(short-circuit logic)或惰性求值(lazy evaluaion):布尔运算符通常被称为逻辑运算符,就像你看到的那样第2个值有时“被短路了”。这种行为对于or来说也同样适用。在表达式x or y中,x为真时,它直接返回x的值,否则返回y值。注意,这意味着在布尔运算符之后的所有代码都不会执行。

  这有什么用呢?它主要是避免了无用地执行代码,可以作为一种技巧使用,假设用户应该输入他/她的名字,但也可以选择什么都不输入,这时可以使用默认值‘<unknown>’。可以使用if语句,但是可以很简洁的方式:

例如:name = raw_input('Please enter your name: ')or'<unknown>'

  换句话说,如果raw_input语句的返回值为真(不是空字符串),那么它的值就会赋给name,否则将默认的'<unknown>'赋值给name。

  这类短路逻辑可以用来实现C和Java中所谓的三元运算符(或条件运算符)。Python2.5中有一个内置的条件表达式,像下面这样:

a if b else c

  如果b为真,返回a,否则,返回c。(注意,这个运算符不用引用临时变量,就可以直接使用,从而得到与raw_input例子中同样的结果。)

4.关于逻辑and和or,python的用法和C的用法主要异同点如下:

(1)、当两个操作数均为逻辑值时,与我们通常理解的逻辑运算一致;

(2)、当第一个操作数为逻辑值,第二个操作数为其他类型时,执行以下规则:

    a and b:在a为false的时候,返回a,否则返回b。

    a or b: 在a为true的时候,返回a,否则返回b。

    总之,and与or返回的不仅有true/false的语义,还返回了它的值。


动动手:

0.import random

secret=random.randint(1,10)

time=3

print("-------我爱小鲤鱼--------")

#给guess赋值一个绝对不等于secret的值

guess=0

print("请猜猜小鲤鱼的幸运数字",end=" ")

while (guess!=secret) and (time>0):

    temp=input()

    time-=1

    guess=int(temp)

    if guess==6:

        print("哇,bingo!")

    else:

        if guess>6:

            print("哥,大了大了!")

        else:

            print("嘿,小了小了!")

        if time>0:

            print("再试一次吧")

        else:

            print("机会用完了")

print("game over")

1.number=input("请输入一个整数:")

guess=int(number)

i=0

while guess:

    i+=1

    print(i)

    guess-=1

2.num=input("请输入一个整数:")

nums=int(num)

while nums:

    print(" "*nums+"*"*nums)

    nums-=1

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 这篇内容其实很早就在自己的电脑上整理完成了,主要用作对做记录整理Python和其他语言不太一样的地方,使自己可以快...
    KwokKwok阅读 360评论 0 0
  • 一、运算符 运算符:算数运算符、比较运算符、赋值运算符、逻辑运算符 1.比较运算符:>、<、>=、<=、==、!=...
    SlashLife阅读 602评论 0 0
  • 教程总纲:http://www.runoob.com/python/python-tutorial.html 进阶...
    健康哥哥阅读 2,097评论 1 3
  • python===### 地址1. mac 下python 2.7的地址 /Library/Python/2.7/...
    Colaplusice阅读 549评论 0 0
  • 最近听到好多伤感的事情,身为孩子的母亲,我的心在滴血,感同身受。做了母亲,有了全天下的母亲的通病,母爱泛滥。看到与...
    冷眼鲁娜阅读 396评论 2 3