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()