004,改进我们的小游戏

王朝学院·作者佚名  2016-08-27
窄屏简体版  字體: 小  |  中  |  大  |  超大  

004,改进我们的小游戏

python的比较操作符:

> 左边大于右边

>>> 1 < 3

True

>>> 1 > 3

False

>= 左边大于等于右边

< 左边小于右边

<= 左边小于等于右边

== 左边等于右边

!= 左边不等于右边

条件分支语法:

if条件:

条件为真(true)执行的操作

else:

条件为假(false)执行的操作

ps:跟其他语言不同的是,if后面一定要有":"号,条件判断语句一定要“缩进”!(true,false属于布尔类型的值!)

课中练习:

1、

PRint('猜字谜')

temp = input ('猜猜我心里想的是什么数字?')

guess = int (temp)

if guess == 8:

print('wtf,你是我心里的蛔虫吗?')

else:

if guess > 8: #注意:缩进

print('大了大了!!')

else:

print('小了小了!!')

print('游戏结束,又被坑了吧!!')

运行结果:

>>>

猜字谜

猜猜我心里想的是什么数字?8

wtf,你是我心里的蛔虫吗?

游戏结束,又被坑了吧!!

>>> ================================ RESTART ================================

>>>

猜字谜

猜猜我心里想的是什么数字?9

大了大了!!

游戏结束,又被坑了吧!!

>>> ================================ RESTART ================================

>>>

猜字谜

猜猜我心里想的是什么数字?6

小了小了!!

游戏结束,又被坑了吧!!

>>> ================================ RESTART ================================

思考:做这个练习的时候没注意第二条件“if guess > 8”,是属于else:范围里面,必须缩进,不然会导致错误语法报错。琢磨了一下加入缩进,问题解决。

2、重复运行。

while循环

while条件:

条件为真(true)执行的操作

print('猜字谜')

temp = input ('猜猜我心里想的是什么数字?')#guess变量赋值,需放在while前面。

guess = int (temp)

while guess != 8:

#注意缩进!!

temp = input ('错了错了错了!!')

guess = int (temp)

if guess == 8:

print('wtf,你是我心里的蛔虫吗?')

else:

if guess > 8:

print('大了大了!!')

else:

print('小了小了!!')

print('游戏结束,又被坑了吧!!')

运行结果:

>>>

猜字谜

猜猜我心里想的是什么数字?5

错了错了错了!!4

小了小了!!

错了错了错了!!6

小了小了!!

错了错了错了!!9

大了大了!!

错了错了错了!!7

小了小了!!

错了错了错了!!8

wtf,你是我心里的蛔虫吗?

游戏结束,又被坑了吧!!

>>>

3、random模块

randint(),会返回一个随机的整数。

利用这个函数来改造我们的游戏

import random #必须在程序的最前面,导入random模块

secret = random.randint (1,10)#加多一个secret变量,生成一个1-10的随机整数

print('猜字谜')

temp = input ('猜猜我心里想的是什么数字?')#guess变量赋值,需放在while前面。

guess = int (temp)

while guess != secret: #把之前的8改成secret

#注意缩进!!

temp = input ('错了错了错了!!')

guess = int (temp)

if guess == secret: #把之前的8改成secret

print('wtf,你是我心里的蛔虫吗?')

else:

if guess > secret: #把之前的8改成secret

print('大了大了!!')

else:

print('小了小了!!')

print('游戏结束,又被坑了吧!!')

运行结果:

>>>

猜字谜

猜猜我心里想的是什么数字?5

错了错了错了!!6

大了大了!!

错了错了错了!!5

大了大了!!

错了错了错了!!4

大了大了!!

错了错了错了!!3

大了大了!!

错了错了错了!!2

大了大了!!

错了错了错了!!1

wtf,你是我心里的蛔虫吗?

游戏结束,又被坑了吧!!

>>>

ps:程序缺陷:第一次的数字没有提示大了或者小了。

课后练习:

测试题:

0. 请问以下代码会打印多少次“我爱C”

while 'C':

print('我爱C')

答:无数次循环

1. 请问以下代码会打印多少次“我爱鱼C!”

i = 10

while i:

print ('我爱鱼C!')

i = i - 1

答:10次

2. 请写出与 10 < cost < 50 等价的表达式

(10 < cost) and (cost < 50)

3. Python3 中,一行可以书写多个语句吗?

答:可以,用分号隔开,如:>>> print('I love you');print('very much!')

4. Python3 中,一个语句可以分成多行书写吗?

答:可以,用反斜杠\,或者括号分解成几行。如:

>>> 3>4 and \

1<2

False

>>> (4>3 and

5>4)

True

>>>

6. 听说过“短路逻辑(short-circuit logic)”吗?

答:逻辑操作符有个有趣的特性:在不需要求值的时候不进行操作。这么说可能比较“高深”,举个例子,表达式 x and y,需要 x 和 y 两个变量同时为真(True)的时候,结果才为真。因此,如果当 x 变量得知是假(False)的时候,表达式就会立刻返回 False,而不用去管 y 变量的值。这种行为被称为短路逻辑(short-circuit logic)或者惰性求值(lazy evaluation),这种行为同样也应用与 or 操作符。

操作:

0. 完善第二个改进要求(为用户提供三次机会尝试,机会用完或者用户猜中答案均退出循环)并改进视频中的代码。

import random

times = 3

secret = random.randint (1,10)#随机函数

print('猜字谜')

#先给出guess赋值(赋一个绝对不等于secret的值)

guess = 0

#print()默认是打印完字符串会自动添加一个换行符,end=" "参数告诉print()用空格代替换行

print ('猜猜我心里想的是什么数字?', end = ' ')#注意逗号用英文标点

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

temp = input ()

guess = int (temp)

times = times - 1#每输入一次,可用机会就-1

if guess == secret:

print('wtf,你是我心里的蛔虫吗?')

else:

if guess > secret:

print('大了大了!!')

else:

print('小了小了!!')

if times > 0:

print ('再试一次吧:', end = ' ')

else:

print('机会用完了,退下吧。')

print('游戏结束,又被坑了吧!!')

运行结果:

>>>

猜字谜

猜猜我心里想的是什么数字? 5

小了小了!!

再试一次吧: 6

小了小了!!

再试一次吧: 9

小了小了!!

机会用完了,退下吧。

游戏结束,又被坑了吧!!

>>>

2,

temp = input ('请输入一个整数:')

num = int (temp)

i = 1

while num:

print(i)

i = i + 1

num = num - 1

运行效果:(未理解其中用法)

>>>

请输入一个整数:10

1

2

3

4

5

6

7

8

9

10

>>>

3,

temp = input ('请输入一个整数:')

num = int (temp)

while num:#循环输入的数字次数,如输入8则执行8次

i = num - 1#变量i赋值

while i:#循环i次

print(' ',end = ' ')#打印结果中的*号前面的空格。

i = i - 1

j = num

while j:

print('*',end = ' ')#打印结果中的*号

j = j - 1

print()#打印完自动添加换行符

num = num - 1

运行效果

>>>

请输入一个整数:8

* * * * * * * *

* * * * * * *

* * * * * *

* * * * *

* * * *

* * *

* *

*

>>>

做下改动,

temp = input ('请输入一个整数:')

num = int (temp)

while num:#循环输入的数字次数,如输入8则执行8次

i = num - 1#变量i赋值

while i:#循环i次

print(' ',end = ' ')#打印结果中的*号前面的空格。

i = i - 1

j = num

while j:

print('*',end = ' ')#打印结果中的*号

j = j - 1

k = num

while k:

print('$',end = ' ')

k = k - 1

print()#打印完自动添加换行符

num = num - 1

加多一个变量k,然后做循环,看看效果如下:

>>>

请输入一个整数:8

* * * * * * * * $ $ $ $ $ $ $ $

* * * * * * * $ $ $ $ $ $ $

* * * * * * $ $ $ $ $ $

* * * * * $ $ $ $ $

* * * * $ $ $ $

* * * $ $ $

* * $ $

* $

>>>

课时小结:

1、while循环语句及其应用(需加深理解)

2、 了解输入随机数:import random 和 random.randint ()的含义

3、and的使用

 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
© 2005- 王朝網路 版權所有 導航