美文网首页
day4 循环和分支

day4 循环和分支

作者: 跟我念一遍 | 来源:发表于2018-07-19 20:34 被阅读0次

    if语句

    结构:

    1.

    if 条件语句:
    条件语句为True执行的代码块

    执行过程:先判断条件语句是否为True,
    如果为True就执行if语句后:后面对应的一个缩进的所有代码块
    如果为False,就不执行冒号后面的一个缩进中的代码块,直接执行后续的其他语句

    条件语句:可以使任何有值的表达式,但是一般是布尔值

    if : 关键字

    if True:
        print('代码1')
        print('代码2')
        print('代码3')
    print('代码4')
    

    练习:用一个变量保存时间(50米短跑),如果时间小于8秒,打印及格

    time = 7
    if time < 8:
        print('及格') # 只有条件成立的时候才会执行
    print(time)     #不管if语句的条件是否,这个语句都会执行 
    
    if 条件语句:
        语句块1
    else:
        语句块2
    

    执行过程:先判断条件语句是否为True,如果为True就执行语句块1,否则就执行语句块2

    练习:用一个变量保存成绩,如果成绩大于等于60,打印及格,否则打印不及格

    score = 70
    if score >= 60:
        print('及格')
    else:
        print('不及格')
    

    3.if-elif-elif...else

    '''
    if 条件语句1:
    代码块1
    elif 条件语句2:
    代码块2
    else
    代码块3

    执行过程:先判断条件语句1是否为True,如果为True就执行代码块1 ,执行完代码块1在执行其他语句
    如果条件语句1是False,就判断条件语句2是否为True:
    如果条件语句2是True就执行代码块2,执行完代码块2再执行其他语句
    如果条件语句2是False就执行代码块3,执行完代码块3再执行其他语句

    print("第一次打印",end=" ")
    print("第二次打印")
    print("第三次打印")
    print(123,"aaa",sep = "--")
    

    给一个学生的成绩,判断成绩是优秀(90-100),良好(70-89),及格(60-69),不及格(0-59)

    grade = 18
    if 90 <= grade <= 100:
        print('优秀')
    elif 70 < grade <= 89:
        print('良好')
    elif 60 < grade <= 69:
        print('及格')
    elif 0 <= grade <= 60:
        print('不及格')
    else:
        print('成绩有误!!!')
    

    02 类型的强制转换

    数据类型的转换:类型名()
    int float bool str

    1.其他的数据类型转换成整型
    '''
    浮点型:只保留整数部分
    布尔类型:True -> 1 , False -> 0
    字符串:去掉字符串的引号后,剩下部分本身就是一个整型数据的字符串才能转换成整数

    print(int(12.9))
    print(int(False))
    print(int('+12'))
    

    2.其他的数据类型转换成浮点型
    整型:在整数后面加一个'.0'
    布尔:True -> 1.0 , False -> 0.0
    字符串:去掉字符串的引号后,剩下的部分本身就是一个整型或者浮点型数据的字符串才能转换成浮点型数据

    print(float(123))
    print(float(False))
    print(float('+100.23'))
    

    3.其他类型的数据转换成布尔类型:bool()
    不管什么类型的数据都能转换成布尔值
    整数中,除了0会转换成False其他的都会转换成True

    总结:所有为0,为空的值都会转换成False,其他的值都是True

    print(bool())
    
    if 0:
        print('======')
    else:
        print('!!!!!')
    

    判断一个字符串是否是空串(字符串长度是0)

    空串就是:'',""

    方法1

    str1 = '12'
    if str1 == '':
        print('空串')
    else:
        print('不是空串')
    

    方法2

    if len(str1) == 0:
        print('空串')
    else:
        print('不是空串')
    

    方法3

    if str1:
        print('不是空串')
    else:
        print('空串') 
    

    判断一个数字是否是0

    number = 10

    方法1

    if number == 0:
        print('是零')
    else:
        print('非零')
    

    方法2

    if number:
        print('非零')
    else:
        print('是零')
    

    4.其他类型的数据转换成字符串:str()

    不管是什么类型的数据都可以转换成字符串,就是直接在数据的外层加引号
    print(str(120))

    5. if语句是可以嵌套使用

    if 条件语句1:
        if 条件语句2:
            执行语句块2
        else:
            执行语句块3
    else:
        执行语句块4
    

    给出一个数字,如果是偶数,就打印“xxx是偶数” , 是偶数并且还能被4整除就打印“xxx是4的倍数”,否则就打印“xxx是基数”

    str1 = 456
    if str1 % 2 == 0:
        print('%d是偶数'% str1)
        if str1 % 4 == 0:
            print('%d是4的倍数' % str1) 
    else:
        print('%d是奇数'% str1)    
    
    if str1 % 2:
        print('奇数')
    else:
        print('偶数')
    
    num = 45672
    if isinstance(num,int):
        print('是整数')
        if num % 2:
            print('是奇数')
        else:
            print('是偶数')
            if not (num % 4):
                print('被4整除')
    

    5.判断数据的类型

    isinstance(值,类型名) ---> 判断指定的值是都是指定的类型,如果是结果是True,否则结果是False

    print(isinstance(10,int))  # 判断10是否是int类型
    print(isinstance(10.2,int))
    
    • 需要重复执行某个过程,就可以使用循环
    • python中的循环有for循环和while循环

    03 for循环:

    for 变量名 in 序列:
        循环体
    

    for:关键字
    变量名:和声明变量时的变量名要求是一样的,功能是存储值
    in:关键字,在...里的意思
    序列:容器类型的数据。字符串,列表,字典,元组,集合等
    循环体:会重复执行的代码块

    执行过程:使用变量去序列中取数据,一个一个的取,取完为止。每取一个值,执行一次循环体

    for char in 'abcd123':
        print(char,end='')
        print('!!!')
    print('======')
    

    2.range函数

    xrange是python2.x中的函数,在python3.x只用range函数代替了

    range功能是指产生指定范围的数字序列。一般用在for循环中,控制循环次数

    range(n):产生0 ~ n-1 的整数序列
    range(m,n):产生m ~ n-1 的整数序列
    range(m,n,step):从m开始,每次加step产生下一个数字,直到n前面那一个为止

    range(10):产生数字

    for x in range(10):
        print(x)
    

    range(10,20):产生数字10~19

    for x in range(10,20):
        print(x)
    

    产生(0,10)偶数

    for x in range(0,10,2):
        print(x)
    

    练习:计算1+2+3+.....+100

    sum1 = 0
    for x in range(1,100+1):
        sum1 += x
    print(sum1)
    

    练习:计算123....10

        计算2*4*6*..*10
    
    sum1 = 1
    sum2 = 1
    for x in range(1,11):
        sum1 *= x
        if not x % 2:
            sum2 *= x
    print(sum1)
    print(sum2)
    

    练习2: 有一个字符串“abcdef”,一次去除字符串中偶位,下标是偶数。

    str1 = 'abcdef'
    count = -1
    for x in 'abcdef':
        count += 1
        if count % 2 == 0:
            print(x)
    

    方法1 循环取出所有偶数下标

    str1 = 'abcdef'
    for index in range(0,len(str1),2):
        print(str1[index])
    

    方法2

    for index in range(0,len(str1)):
        if index % 2 == 0:
            print(str1[index])
    

    方法三

    index = 0
    for char in str1:
        if index % 2 == 0:
            print(char)
        index += 1
    

    while循环

    while 条件语句:
    循环体
    其他语句

    while:关键字
    条件语句: 结果是True,或者False
    循环体:重复执行的代码段

    执行过程:判断条件语句是否为True,如果为True就执行循环体。
    执行完循环体,再判断条件语句是否为True,如果为True就在执行循环体....
    直到条件语句的值为False,循环结束,直接执行while循环后面的语句

    注意:如果条件语句一直都是True,就会造成死循环。所以在循环体要有让循环可以结束的操作

    python 中没有do-while 循环
    死循环
    while True:
    print('aaa')

    flag = True
    while flag:
        print('aaa')
        flag = False
    

    使用while 循环计算1到100的和:

    sum1 = 0
    count = 1
    while count <= 100:
        sum1 += count
        count += 1
    print(sum1) 
    

    练习: 计算100以内偶数的和

    sum1 = 0
    count = 0
    while count <= 100:
        sum1 += count
        count += 2
    print(sum1)
    

    break和continue两个关键字,都是作用于循环房中,用来结束循环的

    continue:关键字,在循环体中遇到continue,就结束当次循环,直接进入下次循环的判断

        (如果是for循环,就让变量去取下一个值。如果是while循环就去判断while后边的条件语句是否为True)
    
    for x in range(10):
        print(x)
        continue   # 不执行continue后面的语句,直接让x取下一个值
        print('===')
    
    for x in  range(10):
        if x % 2:
            continue
        print(x)
    
    

    break:关键字,在循环体中遇到break,就直接结束整个循环。直接执行循环后边的其他语句。

    
    for x in range(0,10):
        print(x)
        break
        print('======')
    print('!!!!')
    

    通过改变条件语句的值,来结束循环

    number = 1
    while number <= 100:
        print(number)
        number += 1
    

    使用break结束死循环

    number = 1 
    while True:
        if number > 100:
            break
        print('==',number)
        number += 1 
    

    练习:找出100-1000以内第一个能被3和17整除的数

    number = 100
    while True:
        if number % 3 == 0 and number % 17 == 0:
            print(number)
            break
        number += 1
    
    for x in range(100,1001):
        if x%3==0 and x%17==0:
            print(x)
            break
    

    1.for 和 while 的选择

    '''
    for循环的循环次数是确定的,while循环的循环次数可以不确定

    1.循环次数不确定的时候选择while循环。次数确定一般使用for循环
    2.通过循环遍历一个序列中的值,使用for循环
    '''

    2.input()

    接收从控制台输入的数据(输入的数据以回车结束)
    程序中遇到input()函数,程序会阻塞,等待用户输入完成后,才会接着执行后面的代码

    使用value去保存控制台输入的数据

    value = int(input())
    print('====')
    

    3.产生随机数

    python中有一个内置模块,可以产生随机数:random

    randint(m,n):产生一个m~n的随机数(整数)

    import random
    number = random.randint(0,10)
    print(number)
    

    相关文章

      网友评论

          本文标题:day4 循环和分支

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