美文网首页
教小朋友学 Python -- 条件与循环

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

作者: 老马的程序人生 | 来源:发表于2019-07-26 16:59 被阅读0次

背景

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

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


Python 基本语法

<b>1. 条件语句</b>

<u>if 语句</u>

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

<u>else 语句</u>

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("游戏结束,不玩儿啦!")

<u>elif 语句</u>

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('输入错误!')

<u>assert 关键词</u>

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

<b>2. 循环语句</b>

<u>while 循环</u>

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("游戏结束,不玩儿啦!")

<u>for 循环</u>

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

<u>range() 函数</u>

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)

<u>break 语句</u>

  • 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("游戏结束,不玩儿啦!")

<u>continue 语句</u>

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

<u>pass 语句</u>

def a_func():

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

<b>3. 综合例子</b>

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

总结

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


相关图文

相关文章

网友评论

      本文标题:教小朋友学 Python -- 条件与循环

      本文链接:https://www.haomeiwen.com/subject/ktpdrctx.html