零基础入门学习 Python(4)条件分支、while循环、逻辑连接符、引入外援

Python的比较操作符

Python的比较操作符 含义
> 左边大于右边
>= 左边大于等于右边
< 左边小于右边
<= 左边小于等于右边
== 左边等于右边
!= 左边不等于右边

在这里插入图片描述

条件分支

Python的条件分支语法

if 条件 :
    条件为真(True)执行的操作
else 条件 :
    条件为假(False)执行的操作
在这里插入图片描述

While循环

程序应该提供多次机会给用户猜测,专业来讲就是程序需要重复运行某些代码

Python 的while循环语法

while 条件 :
    条件为真(True)执行的操作
在这里插入图片描述这是因为一直执行循环,所以程序一直跳出来“哥们,大了大了!”
在这里插入图片描述
在这里插入图片描述

这样只用当用户输入正确的答案,循环才会结束,而我们希望有一个次数的限制,比如当用户连续猜错三次时,则结束程序在这里插入图片描述
上面的是错误示例,会重复4次,应该一开始就判断,正确如下:一开始time<3执行循环,因为最后time+1,即已经达到三次循环
在这里插入图片描述

补充在Python看来只有以下内容会被看作假(copy的新晋博主典典love峰峰)

【1】(注意冒号或括号里边啥都没有,连空格都不要有!):False None 0 “” ‘’ () [] {}

在这里插入图片描述

【2】冒号里的False直接被认定为假

在这里插入图片描述

【3】0以及None等都会被直接认定为假

在这里插入图片描述

and/or逻辑操作符

上述限定猜测数字的次数为不超过三次时,用到了and逻辑操作符
使用and逻辑操作符可以将任意表达式连接在一起,并得到一个布尔类型(True/Flase)的值
比较运算符的优先级要高于逻辑运算符
()里的内容优先执行
and逻辑操作符只有当左边和右边同时为True时,其结果才为True
or逻辑运算符左边右边有一个为True,其结果为True
在这里插入图片描述

引入外援

由于上面的程序的标准答案是固定的,那么A知道了会告诉B,那么这个游戏就毫无意义,这时候需要引入外援,使得每次运行程序产生的答案是随机的

random 模块

模块是什么?我们每次写的程序实际上就是一个独立模块,Python提供了许多module可以引入
random模块里面有一个函数叫做randint(a,b),Ta会返回一个a-b随机的整数
首先必须在程序的最前面导入外援,用import

在这里插入图片描述

Task

1.以下代码会打印多少次“我爱pdd”?

while 'C':
    print('我爱pdd')

A:无数次,因为没有限定循环条件 CTRL + C(强制结束)
造成死循环的原因是while后边的条件永远为真(True),在Python看来,只有以下内容会被看作假

while '':
    print('进入循环')
print('退出循环')
while False:
    print('进入循环')
print('退出循环')
while 0:
    print('进入循环')
print('退出循环')    

这就解释了为什么while循环可以直接这样用:当i=i-1为零时不执行

while i:

2.以下代码会打印多少次“我爱pdd”?

i = 10
while i:
    print('我爱pdd')
    i = i - 1

A:会打印10次
3.请写出与 10 < cost < 50 等价的表达式
A:cost>10 and cost<50

4.Python3 中,一行可以书写多个语句吗?
可以,语句之间用分号隔开即可,如>>> print(‘I love fishc’);print(‘very much!’)
在这里插入图片描述

5.Python3 中,一个语句可以分成多行书写吗?
可以,一行过长的语句可以使用反斜杠或者括号分解成几行

>>> 3 > 4 and \
  1 < 2
>>> ( 3 > 4 and 
  1 < 2 )

6.请问Python的 and 操作符 和C语言的 && 操作符 有何不同?【该题针对有C或C++基础的朋友

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

这种行为被称为短路逻辑(short-circuit logic)或者惰性求值(lazy evaluation),这种行为同样也应用与 or 操作符.
实际上,Python 的做法是如果 x 为假,表达式会返回 x 的值(0),否则它就会返回 y 的值
在这里插入图片描述
此处and逻辑连接符仍有疑惑,比如1 and 3输出3是因为做了比较吗??
True=1,False=0
8.尝试实现如下截图功能
在这里插入图片描述

错误示例:在这里插入图片描述
分析:字符串和数字不可以比较;对while循环的理解有误,自己改进后的代码:

ask = input('请输入一个整数:')
asks = int(ask)
i = 1
i = int(i)
while i <= asks:
    print(i)
    i = i + 1
    i = int(i)

在这里插入图片描述
鱼c代码:

temp = input('请输入一个整数:')
number = int(temp)
i = 1
while number:
    print(i)
    i = i + 1
    number = number - 1

在这里插入图片描述

9.使用代码实现如下截图功能在这里插入图片描述
我的代码:(是错的,因为并没有缩进)

temp = input('请输入一个整数:')
ask = int(temp)
i = 1
i = int(i)
while i <= ask:
    out = "*" * ask
    print(out)
    ask = ask - 1

在这里插入图片描述
自己代码改进后(补充空格):还是错的,因为*前面的空格数目要比✳数少一

temp = input('请输入一个整数:')
ask = int(temp)
i = 1
i = int(i)
while i <= ask:
    out = "*" * ask
    blank = " " * ask
    print(blank + out)
    ask = ask - 1
    

在这里插入图片描述
再次改进后的代码:

temp = input('请输入一个整数:')
ask = int(temp)
i = 1
i = int(i)
while i <= ask:
    num = ask - 1
    out = "*" * ask
    blank = " " * num
    print(blank + out)
    ask = ask - 1

在这里插入图片描述

鱼c的代码:

temp = input('请输入一个整数:')
number = int(temp)
while number:
    i = number - 1
    while i:
        print(' ', end = '')
        i = i - 1
    j = number
    while j:
        print('*', end = '')
        j = j - 1
    print()
    number = number - 1

在这里插入图片描述
疑惑点代码:

print(' ', end = '')
print()

猜你喜欢

转载自blog.csdn.net/qq_44520665/article/details/112441631
今日推荐