分支结构与循环

一,分支结构

选择结构,需要用到的关键字:if , else, elif

1.单分支结构

“”"
语法:
if 条件:
代码块
else:
代码块

else语句不一定需要添加
“”"

%d 表示将整型插入到字符串的某个位置
%f 表示将浮点型插入到字符串的某个位置
%s 表示将文本型插入到字符串的某个位置

在某个网站登录账号
Username = input('请输入账号:')
Pwd = input('请输入密码:')
if Username == 'asd' and Pwd == '1234':
    print('登录成功')
else:
    print('账号或密码错误')
练习:判断任意三条边是否能组成三角形。
a = 7
b = 6
c = 13
if a + b > c and a + c > b and b + c > a:
    print("可以构成三角形")
else:
    print("不能构成三角形")
2.多分支结构

“”"
语法:
if 条件:
代码块
elif 条件:
代码块
elif 条件:
代码块

else:
代码块
(else语句可以不写)
“”"

练习: 使用多分支结构判断一个年份是否是闰年
year = int(input("请输入一个年份:"))
if year % 4 == 0 and year % 100 != 0:
    print("%d年为闰年" % year)
elif year % 400 == 0:
    print("%d年为闰年" % year)
else:
    print("%d年不是闰年" % year)
嵌套分支:
练习:判断一个数字是奇数还是偶数,如果是偶数,再判断是不是4的倍数
num = int(input("请输入一个数:"))
if num % 2 == 0:
    if num % 4 == 0:
        print("%d是偶数也是4的倍数" % num)
    else:
        print("%d是偶数但不是是4的倍数" % num)
else:
    print("%d是奇数" % num)
3. 三目运算符

单分支结构的变形(作用:简化单分支结构)
语法:
变量= 结果1 if 条件 else 结果2

如果条件成立,执行结果1,否则执行结果2

age = int(input('请输入你的年龄:'))
result = '成年' if age >= 18 else '未成年'
print(result)

三目运算符与单分支结构没有区别
仅仅在美观度(简洁程度)上有区别

二, 循环

循环:解决重复执行某一类工作的语法。
循环涉及到的关键词:for,in,while,break,continue,else

1.for–in 循环

“”"
语法:
for 变量 in 容器:
代码块
“”"

容器:range,字符串,列表,集合,元组,字典等

案例:计算1-100的和
sum = 0
for i in range(1, 101):  # range(1,101)生成[1,100]的所有的整数
    print(i)
    sum += i
print(sum)

range(M,N,step) M:范围起点,闭区间; N:范围终点,开区间;step:步长,默认为1
当step大于0时,M必须小于N,如果step不写,从M开始取数据,并且M为0时,M可以不写,默认为0.

如果range中只有一个数字x,并且x大于0的,代表从0获取到x-1,此时x等于结束范围N

# 1.计算1-100之间所有5的倍数的数字和
number=0
for i in range(5,101,5):
    print(i)
    number += i
print(number)

range(100,90,-1) —从[100,90)区间从大到小依次获取元素
range(-10,-20,-1) —从[-10,-20)区间从大到小依次获取元素

当step小于0时,M必须大于N;

2. while循环

for循环是根据容器中元素个数来确定循环次数。
while循环既可以有限次的循环,也可以无限次的循环。

while 循环语法:

“”"
while 条件:
代码块
“”"

案例:猜数字游戏,从1-100范围内随机指定一个数字,找玩家猜数字,
如果猜对了,游戏结束;如果猜大了,猜小了给提示。只有7次机会。

from random import randint
# randint()能够在指定的范围内随机生成一个整数
num = randint(1,100)
# print(num)
flag = True
count = 0
while flag:
    result=int(input("请输入你猜的数字:"))
    count += 1
    if result > num:
        print("再小一点")
    elif result < num:
        print("再大一点")
    else:
        print("猜对了!")
        flag = False
    if count >7:
        print('智商有限')
        break
    # pass #pass作用:保持结构的完整性,不参与程序执行。
3. break 和 continue

break:被触发时,直接结束当前所在循环。
continue:被触发时,结束当前所在循环的本次循环,进入下一次循环

4. for-else语句:

当for循环非正常结束时,else语句不执行;
for循环正常结束时,else语句被触发;

应用场景:某一结论在所有情况判断完成以后才确定,可以使用for-else循环

案例:找出100以内所有的素数。

素数(质数):一个数字,只有1和本身两个因子。2是最小的素数。

for i in range(2, 101):
    if i == 2:
        print("2是素数")
    else:
        for x in range(2, i):
            if i % x == 0:
                print("%d不是素数" % i)
                break
        else:
            print("%d是素数" % i)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值