一、if 判断语句

1. 单分支

基本的语法格式:



if 条件语句:   # 注意这里必须以英文的冒号结束
    条件语句为真时,执行的语句
n = input("输入数字>>:")
n = int(n)    # input 接收到的数据,都是字符串类型
if n == 5:
    print('相等')
n = input("输入数字>>:")
n = int(n)
if n == 5:
    print('相等')
else:               # else 后边必须有英文的冒号
    print('No')



2. 多分支

基本语法



if 条件语句:   # 注意这里必须以英文的冒号结束
    条件语句为真时,执行的语句
elif  条件语句:
    条件语句为真时,执行的语句
else:
    前面的条件都为假,则执行此语句



elif 可以有多个



n = input("输入数字>>:")
# 必须输入数字来测试
n = int(n)

if n == 5:
    print('ok')
elif n > 5:
    print('大了')
else:
    print('小了')



3. 嵌套



n = input("输入数字>>:")

# n.isdigit() 用于判断 n 的值是否全部都是纯数字, 
# 全部是数字才能使用 int()  转换, 比如: int("123")  可以转成 123

if n.isdigit():
    f_n = int(n)
    if f_n == 5:
        print('ok')
    elif f_n > 5:
        print('大了')
    else:
        print('小了')
else:
    print('请输入数字')



二、while 循环

基本语法



while  条件表达式:
    条件表达式为真,则这些这里的语句



冒号 : 是必须的 缩进也是必须的

示例:



while True:
    n = input("输入数字>>:")
    n = int(n)
    if n == 5:
        print('相等')
        break
    elif n > 5:
        print('大了')
    else:
        print('小了')



假设上面的小游戏,只能玩 3 次,如何处理?



m = 1

while m <= 3:
    m += 1
    n = input("输入数字>>:")
    n = int(n)
    if n == 5:
        print('相等')
        break
    elif n > 5:
        print('大了')
    else:
        print('小了')



三、 for 循环

1. 基本语法



for    变量名    in   被循环的对象:
     循环体



变量名是自定义的 被循环的对象也称为 可迭代对象 可迭代对象: - 字符串 'lenovo' - 列表 [1, 2, 'lenovo'] - 元组 (1, 2, 'lenovo') - 集合 {1, 2 'lenovo'}

2. 循环字符串对象



>>> s = 'shark'
>>>
>>> for i in s:
...     print(i)
...
s
h
a
r
k
>>>



3. range()

产生一个可被循环的整数序列,默认序列的元素从 0 开始.

用法: range(开始索引号, 结束索引号, 步长)



>>> for i in range(3):
...     print(i)
...
0
1
2
>>> for i in range(1, 3):
...     print(i)
...
1
2
>>> for i in range(1, 10, 2):
...     print(i)
...
1
3
5
7
9
>>>



py2 和 py3 的 range 有区别

python3



>>> range(3)
range(0, 3)



python2.x



>>> range(3)
[0, 1, 2]



4. break 和 continue

  • continue 当循环体中执行了 continue ,循环体内剩余的代码就不在被执行了,就会进入下一次循环。
  • break 当循环体中执行了 break ,整个循环就不在执行了
for i in range(2, 10, 2):
    print("循环到", i)
    if i == 4:
        continue
    print(i)
    if i == 6:
        break



range(开始索引号:结束索引号:步长)

猜数游戏升级版



for i in range(0, 10):
    print(i)
    if i < 3:
        inp_num = int(input(">>:").strip())
        # inp_num = int(inp_num)
        if inp_num == 15:
            print('You get it')
            break
        elif inp_num > 15:
            print("高了")
        else:
            print("低了")
    else:
        print("Game over")
        break



四、 for … else

•1. 当 for 循环体正常执行完毕时,再执行一下 else 后面的代码

•2. 当 执行了 break 后,就不再执行 else 后面的代码了



for i in range(20):
    if i == 10:
        print('get it')
        n = i
        break
else:
    print("Nothing")



while … else 也是同样的道理

小练习

猜数游戏

要求:

  1. 提示用户输入一个数字 inp = input()
  2. 判断用户输入的值是否等于 18 == inp
  3. 允许用户尝试 3 次
  4. 假如 3 次机会都没有猜对,就再次提示用户是否继续
  5. 用户输出 y ,就再给 3 次机会。 输入 n 则退出游戏

提示: 可以使用一个默认的变量