教小朋友学 Python -- 条件与循环

教小朋友学 Python -- 条件与循环


背景

昨天,为小朋友介绍了 什么是变量、什么是运算符以及运算符的优先级、什么是数据类型以及类型之间的相互转换。

  • 教小朋友学 Python -- 变量、运算符与数据类型

今天,为小朋友介绍程序设计语言中最常见的两种语句,第一种是条件语句,第二种是循环语句。

Python 基本语法

1. 条件语句

if 语句

if expression:
 expr_true_suite
  • if 语句的expr_true_suite代码块只有当条件表达式expression结果为真时才执行,否则将继续执行紧跟在该代码块后面的语句。
  • 单个 if 语句中的expression条件表达式可以通过布尔操作符and,or和not实现多重条件判断。
if 2 > 1 and not 2 > 3:
 print('Correct Judgement!')

else 语句

if expression:
 expr_true_suite
else
 expr_false_suite
  • Python 提供与 if 搭配使用的 else,如果 if 语句的条件表达式结果布尔值为假,那么程序将执行 else 语句后的代码。
temp = input("不妨猜一下小哥哥现在心里想的是那个数字:")
guess = int(temp)
if guess == 8:
 print("你是小哥哥心里的蛔虫吗?")
 print("哼,猜对也没有奖励!")
else:
 print("猜错了,小哥哥现在心里想的是8!")
print("游戏结束,不玩儿啦!")
  • Python 使用缩进而不是大括号来标记代码块边界,因此要特别注意 else 的悬挂问题。

例子1

hi = 6
if hi > 2:
 if hi > 7:
 print('好棒!好棒!')
else:
 print('切~')

例子2

temp = input("不妨猜一下小哥哥现在心里想的是那个数字:")
guess = int(temp)
if guess > 8:
 print("大了,大了")
else:
 if guess == 8:
 print("你是小哥哥心里的蛔虫吗?")
 print("哼,猜对也没有奖励!")
 else:
 print("小了,小了")
print("游戏结束,不玩儿啦!")

elif 语句

if expression1:
 expr1_true_suite
elif expression2:
 expr2_true_suite
 .
 .
elif expressionN:
 exprN_true_suite
else:
 expr_false_suite
 
  • elif 语句即为 else if,用来检查多个表达式是否为真,并在为真时执行特定代码块中的代码。
temp = input('请输入成绩:')
source = int(temp)
if 100 >= source >= 90:
 print('A')
elif 90 > source >= 80:
 print('B')
elif 80 > source >= 60:
 print('C')
elif 60 > source >= 0:
 print('D')
else:
 print('输入错误!')

assert 关键词

  • assert这个关键词我们称之为“断言”,当这个关键词后边的条件为 False 时,程序自动崩溃并抛出AssertionError的异常。
  • 在进行单元测试时,可以用来在程序中置入检查点,只有条件为 True 才能让程序正常工作。
assert 3 > 7

2. 循环语句

while 循环

while expression:
 suite_to_repeat
  • while循环的suite_to_repeat子句会一直循环执行,直到expression值为布尔假
count = 0
while count < 3:
 temp = input("不妨猜一下小哥哥现在心里想的是那个数字:")
 guess = int(temp)
 if guess > 8:
 print("大了,大了")
 else:
 if guess == 8:
 print("你是小哥哥心里的蛔虫吗?")
 print("哼,猜对也没有奖励!")
 count = 3
 else:
 print("小了,小了")
 count = count + 1
print("游戏结束,不玩儿啦!")
 

for 循环

for iter_var in interables:
 suite_to_repeat
  • 每次循环,iter_var迭代变量被设置为可迭代对象interales的当前元素,提供给suite_to_repeat语句块使用。

例子1

for i in 'ILoveLSGO':
 print(i, end=' ') #不换行输出

例子2

member = ['张三', '李四', '刘德华', '刘六', '周润发']
for each in member:
 print(each)
for i in range(len(member)):
 print(member[i])

range() 函数

range([start,] stop[, step=1])
  • 这个BIF(Built-in functions)有三个参数,其中用中括号括起来的两个表示这两个参数是可选的。
  • step=1 表示第三个参数的默认值是1。
  • range 这个BIF的作用是生成一个从start参数的值开始到stop参数的值结束的数字序列,该序列包含start的值但不包含stop的值。

例子1

for i in range(2, 9): #不包含9
 print(i)

例子2

for i in range(1, 10, 2):
 print(i)

break 语句

  • break语句可以跳出当前所在层的循环。
import random
secret = random.randint(1, 10) #[1,10]之间的随机数
while True:
 temp = input("不妨猜一下小哥哥现在心里想的是那个数字:")
 guess = int(temp)
 if guess > secret:
 print("大了,大了")
 else:
 if guess == secret:
 print("你是小哥哥心里的蛔虫吗?")
 print("哼,猜对也没有奖励!")
 break
 else:
 print("小了,小了")
print("游戏结束,不玩儿啦!")

continue 语句

  • continue终止本轮循环并开始下一轮循环。
for i in range(10):
 if i % 2 != 0:
 print(i)
 continue
 i += 2
 print(i)

pass 语句

def a_func():
# SyntaxError: unexpected EOF while parsing
  • pass语句的意思是“不做任何事”,如果你在需要有语句的地方不写任何语句,那么解释器会提示出错,而pass语句就是用来解决这些问题的。
def a_func():
 pass

3. 综合例子

passwdList = ['123', '345', '890']
valid = False
count = 3
while count > 0:
 password = input('enter password:')
 for item in passwdList:
 if password == item:
 valid = True
 break
 if not valid:
 print('invalid input')
 count -= 1
 continue
 else:
 break

总结

好了,到此为止有关于条件和循环语句的内容就介绍完了。小朋友们要刻意练习哦,基于这些语句,我们后面能做很炫的游戏来玩儿!是不是有些小期待!

相关图文

  • 资料分享:数学建模资料分享 -- 图论部分
  • 资料分享:数学建模资料分享 -- 神经网络部分
  • 如何利用 C# 实现 K 最邻近算法?
  • 如何利用 C# 实现 K-D Tree 结构?
  • 如何利用 C# + KDTree 实现 K 最邻近算法?
  • 如何利用 C# 对神经网络模型进行抽象?
  • 如何利用 C# 实现神经网络的感知器模型?
  • 如何利用 C# 实现 Delta 学习规则?
  • 如何利用 C# 实现 误差反向传播 学习规则?
  • 如何利用 C# 爬取带 Token 验证的网站数据?
  • 如何利用 C# 向 Access 数据库插入大量数据?
  • 如何利用 C# + Python 破解猫眼电影的反爬虫机制?

经过8年多的发展,LSGO软件技术团队在「地理信息系统」、「数据统计分析」、「计算机视觉」等领域积累了丰富的研发经验,也建立了人才培养的完备体系,由于自己准备在「量化交易」领域精进技能,如果大家对这个领域感兴趣可以与我联系,加入我们的量化学习群一起学习探讨。

在这个领域我已做了以下积累:

策略部分:

  • 数字货币 One 的投资价值分析
  • 数字资产量化中的跨市场套利策略
  • 数字资产量化中的同市场套利策略
  • 数字资产量化中的网格交易法
  • 我们能否效仿李笑来的投资策略?
  • 赚钱是刚需,如何正确的交易股票?

数据部分:

  • 如何利用 C# 爬取 One 的交易数据?
  • 如何利用 C# 爬取 One 持有者返利数据?
  • 如何利用 C# 爬取BigOne交易所的公告?
  • 如何利用 C# 爬取Gate.io交易所的公告?
  • 如何利用 C# 爬取「财报说」中的股票数据?

自动化交易部分:

  • 封装BigOne API:身份验证
  • 封装BigOne API:获取账户资产
  • 封装BigOne API:订单系统
  • 封装BigOne API:网格交易法
  • 封装BigOne API:代码的重构
  • 进一步完善自动化交易系统01
  • 进一步完善自动化交易系统02
  • 如何开发「股票数据分析软件」(上)
  • 如何开发「股票数据分析软件」(中)
  • 如何开发「股票数据分析软件」(下)
  • 进一步完善「股票数据分析软件」 - 01

后台回复「搜搜搜」,随机获取电子资源!

欢迎关注,请扫描二维码:

教小朋友学 Python -- 条件与循环



分享到:


相關文章: