先来了解一下条件操作符:

运算符 描述 示例
== 检查两个操作数的值是否相等,如果是则条件变为真。 如a=3,b=3则(a == b) 为 true.
!= 检查两个操作数的值是否相等,如果值不相等,则条件变为真。 如a=1,b=3则(a != b) 为 true.
<> 检查两个操作数的值是否相等,如果值不相等,则条件变为真。 如a=1,b=3则(a <> b) 为 true。这个类似于 != 运算符
> 检查左操作数的值是否大于右操作数的值,如果是,则条件成立。 如a=7,b=3则(a > b) 为 true.
< 检查左操作数的值是否小于右操作数的值,如果是,则条件成立。 如a=7,b=3则(a < b) 为 false.
>= 检查左操作数的值是否大于或等于右操作数的值,如果是,则条件成立。 如a=3,b=3则(a >= b) 为 true.
<= 检查左操作数的值是否小于或等于右操作数的值,如果是,则条件成立。

如a=3,b=3则(a <= b) 为 true.

python的条件分支语法:

if条件:
条件为真(Ture)执行的操作
else:
条件为假(False)执行的操作

注意:if和else语句后要添加冒号

下面看下改进的游戏,使用条件分支:

print('----改进文字游戏----')

temp = input('猜一下现在心里想的哪个数字:')
guss = int(temp)
if guss == 8:
print('wo~,猜对了')
print('哼,猜对了也没有奖励!')
else:
if guess>8: print('大啦,大啦!')
else:
print('小啦,小啦!')
print('游戏结束啦,不玩啦~~~~')

这样就会判断多种情况,提醒用户输入的数值尽可能的接近于答案

那么问题就来了,使用if,else语句如果在输入错误的情况下,只能一遍一遍的重新运行程序,直到用户输入正确,无法进行循环判断;

改进要求:用户可以有多次机会进行输入,换而言之程序支持重复运行某些代码

python的while循环语法:

while条件:
条件为真(Ture)执行的操作

注意:当条件为假(False)时,就不会执行while下的语句;while后要添加冒号

思想:思考在什么地方需要程序进行循环操作

用户输入—>判断用户输入是否正确—>不正确提示用户重新输入—>程序继续运行到输入正确为止

||

正确,程序结束运行

那么看下实现:

print("--------开始游戏--------")
temp = input('猜一下我心里想的数值:')
guess= int(temp)
while guess != 8:
temp = input('猜错了,请重新输入')
guess= int(temp)
if guess == 8 :
print('wo~,猜对了')
else :
if guess > 8:
print('大啦,大啦!')
else:
print('小啦,小啦!')
print('游戏结束啦,不玩啦~~~~')

用户可以无限次输入,如果我们期望在这个次数上加个期限,如何操作,这时候我们可以用到逻辑运算符and

python的逻辑运算符:

运算符 逻辑表达式 描述 实例
and x and y 布尔"与" - 如果 x 为 False,x and y 返回 False,否则它返回 y 的计算值。 (a and b) 返回 20。
or x or y 布尔"或" - 如果 x 是 True,它返回 True,否则它返回 y 的计算值。 (a or b) 返回 10。
not not x 布尔"非" - 如果 x 为 True,返回 False 。如果 x 为 False,它返回 True。 not(a and b) 返回 False

and操作符可以将任意表达式链接在一起,得到一个布尔类型的值

注意:比较运算符的优先级高于逻辑运算符

接下来我们再进行延伸,如何让程序的运行结果是一个随机数,这里就用上了python的random模块中的randint

import random
secret=random.randint(1,10) print("--------开始游戏--------")
temp = input('猜一下我心里想的数值:')
guess= int(temp)
while guess != secret:
temp = input('猜错了,请重新输入')
guess= int(temp)
if guess == secret :
print('wo~,猜对了')
else :
if guess > secret:
print('大啦,大啦!')
else:
print('小啦,小啦!')
print('游戏结束啦,不玩啦~~~~')

ok 今天先到这里~~

最新文章

  1. python学习笔记(二)
  2. 初学Python之异步多线程:sockserver
  3. codeforces 381 D Alyona and a tree(倍增)(前缀数组)
  4. spring源码学习之【准备】jdk动态代理例子
  5. C# Bitmap Save Generic GDI+ Error
  6. CentOS 6.4 安装 Transmission 2.76
  7. synchronized 原理分析
  8. 微服务配合docker使用
  9. Python-百度经纬度转高德经纬度
  10. [ovs] openvswitch 入门
  11. LOJ 2339 「WC2018」通道——边分治+虚树
  12. django模型查询操作
  13. Android ListView理解之BaseAdapter
  14. USB OTG简单介绍、与普通USB线的差别
  15. 基于JS实现发送短信验证码后的倒计时功能(无视页面刷新,页面关闭不进行倒计时功能)
  16. poj1934 Trip【线性DP】【输出方案】
  17. BZOJ5435: 取石子(博弈)(占位)
  18. C#-★结构体★
  19. 傻瓜式Spring教学第一课
  20. easyui numberbox precision属性

热门文章

  1. Android 面试必备 - 系统、App、Activity 启动过程“一锅端”
  2. MySQL分页优化_别再用offset和limit分页了
  3. 源码分析SpringCloud Gateway如何加载断言(predicates)与过滤器(filters)
  4. Activity,Tasks
  5. chemfig化学式转换为pdf
  6. 【Mybatis源码解析】- 整体架构及原理
  7. 简单聊聊内存逃逸 | 剑指offer - golang
  8. (Dubbo架构)基于MDC+Filter的跨应用分布式日志追踪解决方案
  9. ruby基础(四)
  10. 利用stat指令查看文件创建时间