美文网首页
Day5-分之与循环

Day5-分之与循环

作者: 神奇嘟嘟侠 | 来源:发表于2018-11-10 16:33 被阅读0次

    一、分支结构

    python中的分之结构只有if语句,没有switch

    num = 11
    print('%d是偶数' % (num))

    1. if语句

    a.语法:
    if 条件语句:
    代码段
    b.说明:
    if - 关键字
    条件语句 - 任何有结果的表达式(不管结果是什么类型)
    : - 固定
    代码段 - 和if保持一个缩进的一条或者多条语句。

    c.执行过程:

    先判断条件语句的结果是否是True,如果是True就执行冒号后面的代码段。否则就不执行代码段
    注意:如果条件语句的结果不是布尔,会先将结果转换成布尔再判断

    1.1 if后面可以写哪些语句
    if 10:
        print('条件是语句是10')
    
    if 'abc':
        print('条件是语句是abc')
    
    if True:
        print('条件是语句是True')
    
    if 100 > 20:
        print('条件是语句是100 > 20')
    
    if 'AHSG'.isupper():
        print('全是大写!')
    
    注意:赋值语句不能写在if的后面

    if num = 10:
    print('赋值语句')
    num = 11
    if num & 1 == 0:
    print('%d是偶数' % (num))
    print('==========') # 和if保持一个缩进的语句是在条件成立的时候才执行
    print('^^^^^^')

    print('~~~~~~~~~~~') # 在if外面的语句不管if条件是否成立都会执行

    练习:随机产生一个年龄值,如果年龄大于等于18就打印'成年',不管年龄是多少,都把年龄值打印出来

    import random
    age = random.randint(0, 100)
    print('年龄:',age)
    if age >= 18:
        print('成年')
    

    2.if-else
    a.语法:
    if 条按语句:
    代码段1
    else:
    代码段2

    b.执行过程:

    先判断条件语句是否为True,为True就执行代码段1;否则执行代码段2
    随机产生一个整数,如果是奇数打印'XXX是奇数',否则打印'XXX是偶数'

    num = random.randint(0, 20)
    if num & 1 == 1:
        print('%d是奇数' % num)
    else:
        print('%d是偶数' % num)
        print('!!!!!!!')
    

    if - elif - else

    a.语法:
    if 条件语句1:
    代码段1
    elif 条件语句2:
    代码段2
    elif 条件语句3:
    代码段3
    ...
    else:
    代码段n

    b.执行过程:

    先判断条件语句1是否为True,为True就执行代码段1;
    否则,就判断条件语句2是否为True,为True,就执行代码段2
    否则,就判断条件语句3是否为True,为True,就执行代码段3
    依次类推,如果前面的条件都为False,就执行else后面的代码段n

    注意:1.后面的条件判断前提是前面的条件不成立
    2.这儿的elif根据情况可以有多个,else也可以省略
    """
    根据成绩对成绩进行分段: 小于60分打印不及格,6070及格,7189良好,90及90以上优秀

    score = 60
    if score < 60:
        print('不及格')
    elif score <= 70:
        print('及格')
    elif score < 90:
        print('良好')
    elif score <= 100:
        print('优秀')
    else:
        print('超出范围')
    

    4.if嵌套
    可以在if,elif,else后面的代码段中,都可以再写其他的if语句
    如果一个数字是偶数就打印'偶数',否则打印'奇数'。如果偶数还能被4整型,再打印'4的倍数'

    num = 1
    if num % 2 == 0:
        print('偶数')
        if num % 4 == 0:
            print('4的倍数')
        else:
            print('不是4的倍数')
    else:
        print('奇数')
        if num % 5 == 0:
            print('5的倍数')
    

    练习:输入一个字符串,判断是否的第一个字符是否是字母,如果是打印'以字母开头'。
    如果这个字母是大写的,再打印'大写字母'。例如:'abc123' -> 打印'以字母开头'
    'Abc123' -> 打印'以字母开头'和'大写字母' '12hsj' -> 什么都不打印

    str1 = input('请输入一个字符串:')
    str1 = 'Ahjdd'

    方法一:
    字符串.isalpha() -> 是否是字母
    if str1[0].isalpha():
        print('以字母开头')
        # 字符串.isupper() -> 是否是大写字母
        if str1[0].isupper():
            print('大写字母')
    
    # 方法二:
    if 'a'<=str1[0]<='z' or 'A'<=str1[0]<='Z':
        print('以字母开头')
        if 'A'<=str1[0]<='Z':
            print('大写字母')
    
    char = chr(random.randint(97, 122))
    print('随机字符:',char)
    

    二、for循环

    python中的循环结构有两种:for循环和while循环

    什么时候用循环:某个操作需要重复执行,就考虑用循环

    1.for循环

    a.语法:
    for 变量 in 序列:
    循环体

    b.说明:
    for - 关键字
    变量 - 变量名,随便命名(满足变量名的要求)
    in - 关键字
    序列 - 可以是字符串、列表、元祖、字典、集合、迭代器、range
    循环体 - 和for保持一个缩进的一条或者多条语句(需要重复执行的代码)

    c.执行过程:

    让变量去序列中取值,一个一个的取,取完为止;每取一个值,执行依次循环体
    (for循环中,序列中值的个数,决定了循环的次数; 序列中的内容,控制每次变量取到的值)

    d.注意:
    如果for后面的变量取到的值,在循环体里面不使用,那么这个变量命名的时候,用一个_来命名
    """
    """
    x = a print('=====')
    x = b print('=====')
    x = c print('=====')
    """
    for x in '1234':
    print(x)
    print('=====')

    2.range

    """
    range(n) - 产生一数字序列,序列中的内容是0 ~ n-1 (结果是序列)
    range(m,n) - 产生一数字序列,序列中的内容是m ~ n-1
    range(m,n,step) - 产生一数字序列, 从m开始,每次加step,直到n前为止

    range一般用在:a.需要产生指定范围的数字序列
    b.单纯的控制for循环的循环次数

    for num in range(10):
        print(num)
    
    print('~~~~~~~~~~')
    for num in range(10, 21):
        print(num)
    
    print('~~~~~~~~~~')
    for num in range(0, 10, 2):
        print(num)
    
    练习:求1+2+3+...+100

    sum1 = 0
    num = 1 sum1 += num sum1 = sum1+num = 0+1
    num = 2 sum1 += num sum1 = sum1+num = 1+2
    num = 3 sum1 += num sum1 = sum1+num = 1+2+3
    num = 4 sum1 += num sum1 = sum1+num = 1+2+3+4
    ...
    num = 100 sum1 += num sum1 = sum1+num = 1+2+..+99+100

    sum1 = 0   # 保存和
    for num in range(1, 101):
        # sum1 = sum1+num
        sum1 += num
    print(sum1)
    
    

    练习:2+4+6+8+...100

    方法1:不用if语句
    sum1 = 0
    for num in range(2, 101, 2):
        sum1 += num
    print(sum1)
    
    方法2;用if语句
    sum1 = 0
    for num in range(101):
        if num % 2 == 0:
            sum1 += num
    

    练习:写程序统计一个字符串中数字字符的个数
    'ajshf237hajfk90sss7' -> 数字字符个数是:6

    str1 = 'ajshf237hajfk90sss7'
    count = 0    # 保存数字字符的个数
    # 将字符串中的每次字符取出来
    for char in str1:
        # 判断是否是数字字符
        if '0'<=char<='9':
            # print(char)
            count += 1
    print('数字字符个数是:%d' % (count))
    

    用循环控制打印10行'***'

    for _ in range(10):
        print('***')
    

    三、while循环

    1.while循环

    a.语法:
    while 条件语句:
    循环体

    b.说明:
    while - 关键字
    条件语句 - 有结果的表达式(除了赋值语句,一般的表达式都行)
    : - 固定写法
    循环体 - 和while保持一个缩进的一条或者多条语句(会被重复执行)

    (重点!)c.执行过程:

    先判断条件语句是否为True,为True就执行循环体;
    执行完循环体再判断条件语句是否为True, 为True又执行循环体;
    执行完循环体再判断条件语句是否为True, 为True又执行循环体;
    ...
    以此类推,知道判断条件语句的结果为False,整个循环就结果
    1,2,3,4,...100

    num = 1
    while num <= 100:
        print(num)
        num += 1
    print('==:',num)
    

    123...10*

    num = 1
    sum1 = 1
    while num <= 10:
        sum1 *= num
        num += 1
    print(sum1)
    

    练习:使用while循环,获取字符串:'abc123'中的每个字符

    str1 = 'abc123'
    index = 0
    while index < len(str1):
        print(str1[index])
        index += 1
    

    2.for循环和while循环的选择

    python中,for循环能做到的while循环都能做到;但是while循环能做的,for循环不一定能做到

    使用for循环:
    a. 获取序列中的元素(值)
    b. 循环次数确定

    while循环:
    a. 死循环
    b. 循环次数不确定

    练习:程序可以不断的进行输入,知道输入的值为0为止

    请输入: 12
    请输入: a
    请输入:

    value = input('请输入:')
    while value != '0':
        value = input('请输入:')
    print('结束!')
    

    相关文章

      网友评论

          本文标题:Day5-分之与循环

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