一 条件分支
1 python的比较操作符
2 python的条件分支语法
- 语法格式:
- if条件:
- 条件为(True)真执行的操作
- else:
- 条件为假(False)执行的操作
- 跟其他语言的区别:
- if和else判断语句后面必须要有冒号(其它语言没有)
- 执行体的内容不需要用花括号扩起来,所以必须严格保持缩进正确(其它语言需要用花括号把每个判断语句下要执行的内容扩起来)
二 while循环
1 python的while循环语法
- 语法格式:
- while条件:
- 条件为真(True)执行的操作
- 跟其他语言的区别:
- 判断条件后面必须有冒号
- 执行体的内容不需要用花括号扩起来,所以必须严格保持缩进正确
2 and 逻辑操作符
- 定义:python的and逻辑操作符可以将任意表达式连接在一起,并得到一个布尔类型的值
- 格式:表达式1 and 表达式2
- 表达式3 & 表达式4
- 功能:当and两边的表达式的值都为真时,最终的结果才为真;只要有一个表达式的值为假,最终的结果就为假
三 random模块中的randint()函数
1 模块的导入:import random
2 randint()函数的功能:返回一个随机的整数
四 程序代码及运行结果
1 程序代码:
1 import random 2 secret = random.randint(1,10) 3 4 print("----------我爱鱼C工作室----------") 5 print("本次游戏只有三次机会哦^_^") 6 temp = input("不防猜一下小甲鱼现在心里想的是那个数字:") 7 guess = int(temp) 8 count = 1 9 if guess != secret: 10 while (guess != secret) and (count <= 2): 11 temp = input("哎呀,猜错了,请重新输入吧:") 12 guess = int(temp) 13 if guess == secret: 14 print("我草,你是小甲鱼心里的蛔虫吗?!") 15 print("哼,猜中了也没有奖励!") 16 else: 17 if guess > secret: 18 print("哥,大了大了~~~") 19 else: 20 print("嘿,小了小了!!!") 21 count = count + 1 22 print(f"您一共猜了{count}次") 23 else: 24 print("我草,你是小甲鱼心里的蛔虫吗?!") 25 print("哼,猜中了也没有奖励!") 26 print("游戏结束,不玩啦^_^")
2 运行结果
PS E:3_work4_python2_code 3_LittleTurtleStudio> python Game2.py ----------我爱鱼C工作室---------- 本次游戏只有三次机会哦^_^ 不防猜一下小甲鱼现在心里想的是那个数字:8 哎呀,猜错了,请重新输入吧:5 嘿,小了小了!!! 您一共猜了2次 哎呀,猜错了,请重新输入吧:9 哥,大了大了~~~ 您一共猜了3次 游戏结束,不玩啦^_^ PS E:3_work4_python2_code 3_LittleTurtleStudio> python Game2.py ----------我爱鱼C工作室---------- 本次游戏只有三次机会哦^_^ 不防猜一下小甲鱼现在心里想的是那个数字:9 我草,你是小甲鱼心里的蛔虫吗?! 哼,猜中了也没有奖励! 游戏结束,不玩啦^_^ PS E:3_work4_python2_code 3_LittleTurtleStudio>
五 课后作业
(一) 测试题答案
0. 请问以下代码会打印多少次“我爱鱼C!”
while 'C': print('我爱鱼C!')
死循环,会一直打印“我爱鱼C!”(嗯,这也算是永远支持鱼C的方法之一),直到崩溃或者用户按下快捷键 CTRL + C(强制结束),造成死循环的原因是 while 后边的条件永远为真(True)
在 Python 看来,只有以下内容会被看作假(注意冒号括号里边啥都没有,连空格都不要有!):False、None 、0、 "、" ''、 ()、 [] 、{},其他一切都被解释为真!
不妨试试:
while '': print('进入循环') print('退出循环')
或者
while False: print('进入循环') print('退出循环')
或者
while 0: print('进入循环') print('退出循环')
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 fishc');print('very much!')
4. Python3 中,一个语句可以分成多行书写吗?
可以,一行过长的语句可以使用反斜杠或者括号分解成几行,不妨试试:
>>> 3 > 4 and 1 < 2
或者
>>> ( 3 > 4 and
1 < 2 )
5. 【该题针对有C或C++基础的朋友】请问Python的 and 操作符 和C语言的 && 操作符 有何不同?
有图有真相(CC++ VS Python):
VS
>
6. 听说过“短路逻辑(short-circuit logic)”吗?
逻辑操作符有个有趣的特性:在不需要求值的时候不进行操作。这么说可能比较“高深”,举个例子,表达式 x and y,需要 x 和 y 两个变量同时为真(True)的时候,结果才为真。因此,如果当 x 变量得知是假(False)的时候,表达式就会立刻返回 False,而不用去管 y 变量的值。
这种行为被称为短路逻辑(short-circuit logic)或者惰性求值(lazy evaluation),这种行为同样也应用与 or 操作符,这个后边的课程小甲鱼会讲到,不急。
实际上,Python 的做法是如果 x 为假,表达式会返回 x 的值(0),否则它就会返回 y 的值(例子参考楼上那题)。
(二) 动动手答案:
0. 完善第二个改进要求(为用户提供三次机会尝试,机会用完或者用户猜中答案均退出循环)并改进视频中小甲鱼的代码。
需要注意的地方在代码中已经注释!
import random times = 3 secret = random.randint(1,10) print('------------------我爱鱼C工作室------------------') # 这里先给guess赋值(赋一个绝对不等于secret的值) guess = 0 # print()默认是打印完字符串会自动添加一个换行符,end=" "参数告诉print()用空格代替换行 # 嗯,小甲鱼觉得富有创意的你应该会尝试用 end="JJ"? print("不妨猜一下小甲鱼现在心里想的是哪个数字:", end=" ") while (guess != secret) and (times > 0): temp = input() guess = int(temp) times = times - 1 # 用户每输入一次,可用机会就-1 if guess == secret: print("我草,你是小甲鱼心里的蛔虫吗?!") print("哼,猜中了也没有奖励!") else: if guess > secret: print("哥,大了大了~~~") else: print("嘿,小了,小了~~~") if times > 0: print("再试一次吧:", end=" ") else: print("机会用光咯T_T") print("游戏结束,不玩啦^_^")
1. 尝试写代码实现以下截图功能:
temp = input('请输入一个整数:') number = int(temp) i = 1 while number: print(i) i = i + 1 number = number - 1
2. 尝试写代码实现以下截图功能:
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