美文网首页
day4循环和分支

day4循环和分支

作者: Smilebest | 来源:发表于2018-08-23 22:57 被阅读17次

    一、数据类型转换

    1.数据类型自动转换

    a = 10                    整型(in)
    b = 12.5                  浮点型(float)
    result = a + b            会自动将a转换成浮点型,再计算
    print (type(result))
    
    result2 = a + True        会自动将布尔型转换成1
    print (result2,type(result2))
    

    运行

    <class 'float'>
    11 <class 'int'>
    

    2.强制转换

    • 基本语法:类型名(需要转换的数据)
    a.将其他数据转换成int型:浮点型、布尔和部分字符串
    print (int(12.5))        float--->int:去掉小数点和小数点后面的数
    print (int(True),int(False))    bool--->int: 1   0
    

    运行

    12
    1 0
    
    • 去掉字符串的引号后,字符串的内容本身就是一个整数的时候,才能被转换成整型
    print (int('123'))
    print (int('-123'))
    print (int('122.5'))     错误
    print (int('123a'))      错误
    

    运行

    123
    -123
    
    b.将其他的数据类型转换成flaot类型:整数、布尔和部分字符串
    print (float(10))             i
    nt---->float:在整数后加.0
    print (float(True))           bool--->float:True:1.0,False:0.1
    
    • 去掉括号后,字符串的内容本身就是一个整数或者浮点数的时候,才能被转换成浮点型
    print (float('2e3'),float('-12.3'),float('10'))
    
    c.将其他数据类型转换成bool:
    • 所有的数据类型都可以转换成bool

    • 数字中:除0是False,其他都是True

    • 字符串中:除了空串是False,其他都是True

    • 总结:所有为空、为0的值全是False,否则就是True

    print (bool(1),bool(-1),bool(1.1),bool(-1.25))
    print (bool(0),bool(0.0))
    print (bool(None),bool([]))
    
    d.其他数据类型转换成字符串,转换的时候就是在数据外面加引号
    print (str(100),str(1.2),str(True),str([1,2,3]))
    

    二、if语句

    python中的分支结构只有一种:if分支结构

    1.if

    语法:
    if 条件语句:
    ——执行语句块
    其他语句

    说明:

    • a.if:python中的关键字,‘如果’的意思,用来做判断的

    • b.条件语句:最终结果会转换成布尔值

    • c.冒号:冒号是固定语法,必须写!

    • d.执行语句块:可以是多行语句,但是每行语句必须和前面的if保持一个缩进(一个tab/制表符)

    • 执行过程:先判断条件语句的结果是否为True,如果是就执行冒号后面的语句块。否则,直接执行if模块后的其他语句

    练习:用一个变量保存一个学生的成绩,要求:大学生
         成绩大于90的时候,打印优秀,无论成绩多少,都打印
    grade = 100
    if grade > 90:
        print('优秀')
    print ('%d' % (grade))
    

    2.if——else

    语法:
    if 条件语句:
    ——执行语句块1
    else:
    ——执行语句块2
    其他语句

    说明:

    • else:关键字(else后边的冒号不能省)
    • 执行过程:先判断条件语句的结果是否为Ture,如果是就执行语句块1,然后再执行其他语句; 如果为False,就执行语句块2,然后再执行其他语句
    age = 20
    if age >= 18:
        print ('成年')
        print ('可以进网吧')
    else:
        print ('未成年')
    
    

    3.if_elif_else

    语法:
    if 条件语句1:
    ——语句块1
    elif条件语句2:
    ——语句块2
    elif 条件语句3:
    ——语句块3
    。。。
    else:
    ——语句块
    其他语句

    +要求成绩大于90分打印优秀,80-90打印良好,60-79打印及格,60以下不及格
    grade = 80
    if grade > 90:
        print ('优秀')
    
    elif grade >=80:
        print ('良好')
    
    elif grade >=60:
        print ('及格')
    
    else:
        print ('不及格')
    
     练习
    age = 20
    if age >= 18:
        print ('成年')
        print ('可以进网吧')
    else:
        print ('未成年')
    

    4.if语句的嵌套

    • 每个if分支中都可以嵌套其他的if语句
      if 条件1:
      ——执行语句1
      ——if 条件2:
      ——执行语句2
      ——else:
      ——执行语句3
      else:
      ——执行语句4
    成绩和年龄:如果成绩大于90并且年龄是18以上 就获奖100万;
                  年龄小于18岁,就获取奖金200万
                  成绩小于90,打印没有奖金
    grade = 90
    age = 18
    if grade >= 90:
        if age >=18:
            print ('100万')
        else:
            print ('200万')
    else:
        print ('没有奖金')
    

    +练习:产生一个随机数(0-100),判断随机数是否是偶数,如果是打印偶数,否则打印奇数;如果能被4整除,再打印能被4整除

    import random
    number = random.randint(0,100)
    print ('随机数是:%d' % (number))
    if number % 2 == 0:
        print ('偶数')
        if number % 4 == 0:
            print ('能被4整除')
    else:
        print ('奇数')
    
    • 补充:
    • import是python中导入模块或者模块中内容的关键字
      random是python内置的产生随机数模块
    import random
    number = random.randint(10,20)    产生一个10到20的随机数,并且存到number中
    print (number)
    

    三、条件语句的简写

    • 判断一个数是否是偶数的两种写法
    number = 10
    if number %2 == 0:
       print ('偶数')
    
    • 推荐
    if not number %2 :
        print ('偶数')
    
    if number %2:
        print ('奇数')
    
    • 判断一个字符串是否是空串
    str1 = 'abc'
    if str =='':
        print ('空串')
    else:
        print ('不是空串')
    
    • 推荐
    if str:
        print ('不是空串')
    else:
        print ('是空串')
    

    四、for的循环

    • 在完成某个功能的时候,如果需要重复某个操作,就可以使用循环
    • python中的循环结构:for循环和while循环
    1.for循环的结构:

    for 变量名 in 序列:
    ——循环体

    说明:

    • a.for:关键字

    • b.变量名:和声明变量时的变量名的要求一样

    • c.in:关键字

    • d.序列:容器(数据本身是有多个数据组成),例如:字符串、列表、字典、元祖、range、生成式和生成器

    • e.循环体:需要重复执行的代码

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

    for x in ('123'):
        print (x)
    
    • range函数是python中内置函数,作用是产生指定范围中的数字
    • xrange是python2中的函数,python3中用range来代替
      ****range(N):产生0~N-1的所有整数
      ****range(N,M):产生N~M-1的所有整数
      ****range(N,M,step):产生从N开始,每step产生一个整数,到M之前
    print ('==========')
    for x in range (10):
        print (x)
    
    print ('==========')
    for n in range (10,15):
        print (n)
    
    print ('=========')
    for x in range (1,11,2):
        print (x)
    
    • 练习:计算1+2+3+。。。+100
    number = 0
    for x in range (1,101):
        number += x
        print (number)
    

    + 练习:统计1~1000中能够被三整除的数的个数

    ste = 0
    for x in range (1,1001):
        if x %3 == 0:
            print ('%d 可以被三整除' % (x))
            ste += 1
    print ('1~1000中能被三整除的个数:%d' % (ste))
    
    • 注意:for 循环中用来获取序列值的变量,在循环体不是一定要使用. 如果不用,那么变量名可以声明为_
      打印50行"***"
    for _ in range(50):
        print ('***')
    
    • 1~10000中能被5整除的个数
    sum = 0
    for x in range (1,10001):
        if x %5 ==0:
            sum += 1
    print ('1~10000中能被5整除的数的个数是:%d' % (sum))
    
     (1,200)     7     个数
    
    dob = 0
    for x in range (1,201):
        if x %7 == 0:
            dob += 1
    print (dob)
    

    五、while循环

    QQ截图20180823160402.png
    1.结构:

    while 条件语句:
    循环体

    2.说明:

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

    3.执行过程:
    判断条件语句的结果是否为True,如果为True就执行循环体,执行完循环体再判断条件语句是否为True。。。。。,直到结果为False为止
    
     1+2+3+...+100
    n = 0
    x = 1
    while x <= 100:
        n += x
        x += 1
    print (n)
    
    x = 1,n = 0
    1 <= 100   True;n += x  0+1=n;x+=1  1+x=2
    x = 2,n = 0+1
    2 <=100    True;n=0+1+x=0+1+2;x=1+x=3
    。。。
    x = 100,n = 0+1+2+...+99
    x <= 100   True;n=0+1+。。。+100;x=1+x=101
    
    • 练习:循环结束,x的值和n的值,分别是多少 x = 6, n = 2+3+4+5+6
    x = 1
    n = 0
    while x <= 5:
        x += 1
        n += x
    print (n,x)
    

    for 循环与while循环的比较
    **for循环的循环次数是有限的,并且是确定的;while循环的循环次数不确定
    ** for循环:1.遍历序列中的值 2. 循环次数确定
    **while循环:1.死循环 2.循环次数不确定

    • 练习:找大于10000的数中,第一个能够被23整除的数
    x = 10001
    while x %23 != 0:
        x += 1
    print (x)
    

    相关文章

      网友评论

          本文标题:day4循环和分支

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