一、测试题
- 请问以下代码会打印多少次“我爱鱼C!”
while 'c':
print('我爱鱼c!')
无数次循环
- 请问以下代码会打印多少次“我爱鱼C!”
i = 10
while i:
print('我爱鱼C!')
i = i - 1
这段代码打印十次”我爱鱼C“
- 请写出与 10 < cost < 50 等价的表达式
10<cost and cost<50
-
Python3 中,一行可以书写多个语句吗?
一行可以输入多个语句,需要用分号隔开,如print(“小甲鱼”);print(“fishC”) -
Python3 中,一个语句可以分成多行书写吗?
可以。如果有括号(小括号、中括号、大括号),可以在任意地方断行。如果没有,需要在断开的地方添加 \ 字符,表示这一行尚未结束。例如:
# Python3 中,一个语句可以分成多行书写
#一行过长的语句可以使用反斜杠或者括号分解成几行
d = {
"a": 1,
"b": 2
}
long_variable = 1
another_long_variable = 2
a = (long_variable +
another_long_variable)
a = long_variable + \
another_long_variable
- 请问Python的 and 操作符 和C语言的 && 操作符 有何不同?【该题针对有C或C++基础的朋友】
a and b ——a 和 b 都为真时返回b,
a or b ——-a为真时返回a,否则返回 b
Python and 会返回值,而 C 中&& 只会返回 True or False - 听说过“短路逻辑(short-circuit logic)”吗?
逻辑操作符有个有趣的特性:在不需要求值的时候不进行操作。这么说可能比较“高深”,举个例子,表达式 x and y,需要 x 和 y 两个变量同时为真(True)的时候,结果才为真。因此,如果当 x 变量得知是假(False)的时候,表达式就会立刻返回 False,而不用去管 y 变量的值。<这种行为被称为短路逻辑(short-circuit logic)或者惰性求值(lazy evaluation),这种行为同样也应用与 or 操作符,这个后边的课程小甲鱼会讲到,不急。实际上,Python 的做法是如果 x 为假,表达式会返回 x 的值(0),否则它就会返回 y 的值(例子参考楼上那题)。
二、动动手
- 完善第二个改进要求(为用户提供三次机会尝试,机会用完或者用户猜中答案均退出循环)并改进视频中小甲鱼的代码。
print('---------------------小游戏1.1改进版--------------------')
#加入random模块
import random
#定义1到10的随机数
secret = random.randint(1,10)
temp= input("不妨猜一下小甲鱼现在心里想的是哪个数字:")
guess= int(temp)
times = 3
while (guess != secret) and (times > 0):
temp= input("猜错了,请重新再猜一次吧:")
guess= int(temp)
times = times - 1
if guess == secret:
print("我草,你是小甲鱼心里的蛔虫嘛?!")
print("哼,猜中了也没有奖励")
else:
if guess > secret:
print("嘿,大了大了~~")
else:
print("嘿,小了!小了!!")
if times > 0:
print("再试一次吧:, 请输入数字:")
else:
print("机会用光咯T_T")
print("游戏结束,不玩了^_^")
- 尝试写代码实现以下截图功能:
1)需要这样输出:
请输入一个整数:5
1
2
3
4
5
答案1:
#这是用了while循环,比较笨的方法
temp = int(input("请输入一个整数:"))
number =int(temp)
i = 1
while number>0:
print(i)
i+=1
number-=1
答案2:
#这是用到了for循环 超级简单吧~~
temp = int(input('请输入一个整数:'))
for i in range(temp):
print(i + 1)
2)需要打印这样的图案:
请输入一个整数:5
*****
****
***
**
*
答案我有两种思路:
#这种方法真的超级简单
print('----动动手第一题第2小题----')
top = int(input('请输入一个整数:'))
while top:
print(' '*top + '*'*top);
top -= 1;
#这种方法真的超级复杂,差点蒙圈~~~~
print('----动动手第一题第2小题----')
temp = input("请输入一个整数:")
number =int(temp)
loop = number
num_space = number - 1
space=' '
temp = 0
while temp<loop:
print(space*num_space + '*'*number)
num_space -= 1
number-=1
temp += 1
课堂重点:
while 用于循环,python的while用法是 while <条件语句>:(特别注意在条件语句结束后打上英文冒号!) 条件语句一般用比较运算符或者逻辑运算符。如果只是一个字符或者一个数字(只要数字不为0),那么while也会执行(无限循环下去,除非按ctrl+C强制结束)
a<b<c的比较格式在python里面能够直接按这个格式实现,很方便
一行写多语句时可用分号隔开,一行长语句分多行写可用反斜杠或者括号进行提行。注意这些符号均要用英文输入法。
双目逻辑操作符会出现逻辑短路的情况
一些特殊的符号,比如:空格啦,星号啦。可以通过定义变量来储存它们,然后用之前课堂学过的知识,比如字符串复制来完成多个空格或星号的打印
在编写一些有限次数的循环体时,肯定会用到while,还可能会用到if elif 等分支语句,注意留出一到两个中间变量,用来完成数据的中间转换
用input(‘xxxxx’)后,从键盘输入数字的是字符串变量,需要把它转换成整型或浮点型,比如可用一个中间变量实现暂存输入,再将中间变量存放的字符串变量转换输出成整型变量。