美文网首页
2018-08-23 Day4

2018-08-23 Day4

作者: Ftr_ | 来源:发表于2018-08-23 21:40 被阅读0次

    01.字符串

    1.字符串的格式化

    带格式符的字符串%(格式符对应的值)
    说明:%是固定的格式;()同为固定格式。
    带格式符的字符串中有几个格式符,那么后面的括号中就必须有几个和它一一对应的值。
    %s ---->字符串
    %d ---->整数
    %f ---->浮点数 %f 默认6位 %.nf --->保留小数点后n位小数
    %c ---->字符 可以将数字转换成字符拼接到字符串中
    %x和%X ---->转换成十六进制 %x--->3e8 %X--->3E8

    first_name='F'
    last_name='tr'
    age=18
    name=first_name+last_name
    print(name)  #Ftr
    
    # hello,xxx!
    newstr='hello,%s%s!今年%d岁' %(first_name,last_name,age)
    print(newstr) #hello,Ftr!今年18岁
    
    # 金额是:xx.xx元
    money=100
    print('金额是:%.2f元'%(money))  #金额是:100.00元
    """
    money=100
    newstr='金额是:%.2f元'%(money)
    print(newstr) 
    """
    

    2.%c的用法

    a.第一种

    unit='$'
    newstr='金额是:%.2f%c'%(money,unit)
    print(newstr)金额是:100.00$
    

    b.第二种

    char_code=97
    newstr='%d对应的字符是%c'%(char_code,char_code)
    print(newstr) #97对应的字符是a
    

    3.%x和%X

    number=1000
    newstr='%d的十六进制是:0x%x'%(number,number)
    print(newstr) 1000的十六进制是:0x3e8
    newstr='%d的十六进制是:0x%X'%(number,number)
    print(newstr) 1000的十六进制是:0x3E8
    '''
    练习:使用变量保存学生的名字,年龄和成绩
    xxx今年xx岁,他的语文成绩是xxx.
    成绩保留一位小数
    '''
    student_name='Ftr'
    age=20
    score=99
    print('%s今年%d岁,他的语文成绩是:%.1f分'%(name,age,score))
    #Ftr今年20岁,他的语文成绩是:99.0分
    

    02.数据类型装换

    1.数据类型的自动转换

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

    2.强制转换

    基本语法:类型名(需要转换的数据)
    a.将其他数据转换成int类型

    """
    浮点型、布尔和部分字符串可以转换
    """
    print(int(12.55))  #float -> int:去掉小数点和小数点后面的数
    print(int(True),int(False))  #bool->int:True为1,False为0
    # 去掉字符串引号后,字符串的内容本身就是一个整数的时候,才能被转换成整型
    print(int('-123'))  #-123
    # print(int('-123.5'))
     #ValueError: invalid literal for int() with base 10:
    

    b.将其他的数据类型转换成float类型

    """
    整数,布尔和部分字符串可以转换
    """ 
    print(float(100)) #int ->float:在整数后加.0
    print(float(True),float(False)) #bool ->float:True1.0 False=0.0
    #去掉引号后,字符串的内容本身就是一个整数或者浮点数时,才能转换为浮点型
    print(float('123.40')) #123.4
    print(float('123')) #123.0
    

    c.将其他数据类型转换成bool

    """
    所有的数据类型的数据都可以转换成bool
    数字中:除了0是False,其他的都是True
    字符串中:除了空串为False,其他的都是True
    
    总结:所有为空、为0的值全部是False,否则为True
    """
    print(bool(0.000000000))
    print(bool(''))
    print(bool([]))
    print(bool(None))
    

    d.其他类型转换成字符串

    """
    所有的数据都可以转换成字符串,转换的时候就是在数据的外面加引号
    """
    print(str(100),str(18.9),str(True),str([1,2,3]))
    # '100' '18.9' 'True' '[1, 2, 3]'
    

    03. if语句

    1.python中的分之结构只有一种:if分之结构

    1. if语句
    语法:
    if 条件语句:
       执行语句块
    说明:
     a.if: python中的关键字,'如果'的意思,用来做判断
     b.条件语句:最终的结果会被转换成布尔值
     c.冒号:冒号是固定写法,必须写!
     d.执行语句块:这儿可以是多行语句,但是每行语句必须和前面的if保持同一缩进(tab)

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

    练习:用一个变量保存一个学生的成绩,要求当学生成绩大于90的时候,打印优秀,不管成绩是多少,把成绩打印

    score=89
    if score>90:
        print('优秀')
    print("成绩为:%d"%(score)) #成绩为:89
    

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

    说明:
    else:关键字(else后边的冒号不能省)

    执行过程:a.先判断条件语句的结果是否为True,如果为True就执行语句块1,执行完语句块1后再执行其他语句;如果为False就执行语句块2,执行完语句块2后在执行其他语句。
    练习:要求年龄大于等于18就答应成年,否则打印未成年。

    age=10
    if age>=18:
        print('成年')
    else:
        print('未成年')
    # 未成年
    

    3.if-elif-(else)
    语法:
    if 条件语句1:
    语句块1

    elif 条件语句2:
    语句块2

    elif 条件语句3:
    语句块3

    else:
    语句块n

    其他语句

    练习: 要求成绩大于90分打印优秀,80-90打印良好,60-79及格,60以下不及格

    score=99
    
    if score>90:
        print('优秀')
    
    elif score>=80:
        print('良好')
    
    elif score>=60:
        print('及格')
    
    else:
        print('不及格')
    

    4.if语句的嵌套
        每个if分之中都可以嵌套其他的if语句。

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

    练习:成绩和年龄:如果成绩大于等于90并且年龄是18以上就获取奖金100万,年龄小于18获取奖金200万。成绩小于90,没奖金。

    score=99
    age=20
    if score>=90:
        if age>=18:
            print('获得奖金100万')#获得奖金100万
        else:
            print('获得奖金200万')
    else:
        print('没奖金')
    
    if score>=90 and age>=18:
        print('获得奖金100万')#获得奖金100万
    else:
        print('无奖金')
    

    补充:
    import是python中导入模块或者模块中的内容的关键字
    random是python内置的产生随机数的模块

    import random
    number = random.randint(0,100) 
    #产生一个10~20的随机整数,并且存到number中
    print(number)
    

    练习:产生一个随机数,判断随机数是否是偶数,是就打印偶数,不是就打印奇数。如果能够被4整除,在打印能被4整除的数。

    import random
    number = random.randint(0,100) 
    #产生一个10~20的随机整数,并且存到number中
    print(number)
    if number%2==0:
        print('%d为偶数'%(number))
        if number%4==0:
            print('%d能被4整除'%(number))
        else:
            print('%d不能被4整除'%(number))
    else:
        print('%d为奇数'%(number))
    

    04.条件语句的简写

    1.判断一个数是否是偶数的两种写法

    number=10
    
    # 初学者
    if number%2==0:
        print('偶数')
    
    # 推荐
    if not number %2:
        print('偶数')
    if True:
        print('偶数')
    
    if number %2:
        print('奇数')
    else:
        print('偶数')
    
    # 判断一个字符串是否为空串
    # 初学者
    str1 = 'abc'
    
    if str1=='':
        print('空串')
    else:
        print('不是空串')
    
    # 推荐
    if str1:
        print('不是空串')
    else:
        print('是空串')
    
    if not str1:
        print('是空串')
    else:
        print('不是空串')
    

    05.循环

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

    1.for循环

    1.for循环的结构:
        for 变量名 in 序列:
             循环体

    说明:
    a.for:关键字
    b.变量名:和声明变量时的变量名的要求一样
    c.in: 关键字
    d.序列:容器(数据本身是由多个数据组成),
    例如:字符串、列表、字典、元祖、集合、range、生成式和生成器
    e.循环体:需要重复执行的代码

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

    for x in 'abc123':
        print(x)
    """
    x = a
    a
    x = b
    b
    x = c
    c
    x = 1
    1
    x = 2
    2
    x = 3
    3
    """
    

    知识点补充:
    1.xrange是python2中函数,python3中用range来替代。
    2.range函数是python中内置函数,作用是产生指定范围中的数字。

    """
    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) #0 1 2 3 4 5 6 7 8 9
    
    print('============')
    for x in range(10,21):
        print(x) #10 11 12 13 14 15 16 17 18 19 20
    
    print('============')
    for x in range(1,11,2):
        print(x) #1 3 5 7 9
    

    练习 计算1+2+3+4+5+....+100

    """
    sum1=0
    x=1,2,3,4,5......99,100
    第一次: x=1 sum1+=1 sum1=sum1+1=0+1
    第二次: x=2 sum1+=2 sum1=sum1+2=0+1+2
    ....
    第九十九次: x=99 sum1+=99 sum1=sum1+99=0+1+....+99
    第一百次: x=100 sum1+=100 sum1=sum1+100=0+1+....+99+100
    """
    print('============')
    c=0
    for x in range(1,101):
        c+=x
    print(c)
    

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

    c=0
    for x in range(1,1001):
        if x%3==0:
            # print('%d可以被3整除'%(x))
            c+=1
    print('1~1000中能被3整除的数有:%d个'%(c))
    

    注意:for循环中用来获取序列值的变量,再循环体不是一定要使用。如果不用,变量名可以声明为_


    练习:打印50行'****' 控制次数

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

    3. while语句

    1.while循环
      1.结构:
    while 条件语句:
        循环体

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

      3.执行过程:
         判断条件语句的结果是否为Ture,如果为True就执行循环体,执行完循环体在判断条件语句是否为True,如果为True就再执行循环体....直到条件语句的结果为False为止

    练习:用while循环计算1+2+3+4+5+....+100值

    cont=0
    sum=1
    while sum<=100:
        cont+=sum
    print(sum)
    

    练习: x=? sum1=?

    x=1
    sum1=0
    while x<=5:
        x+=1
        sum1+=x
    print(x,sum1) # x=6  sum1=20
    

    4.for循环和while循环的比较:

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

    练习:找大于10000的数中,第一个能被23整除的数

    x=10001
    while x%23!=0:
         x+=1
    print('%d是大于10000数中第一个能被23整除的数'%(x))
    #10005
    

    06.作业

    1.基础

    读程序,总结程序的功能:
    1.numbers=1
      for i in range(0,20):
        numbers*=2
      print(numbers)

    答:
        for i in range(0,20):控制循环次数为20次(0~19)
        numbers*=2---->numbers=nember*2
    1)功能:求2的20次方
    2)结果为:1048576

    numbers=1  
    for i in range(0,20):  
        numbers*=2  
    print(numbers)  
    #1048576
    

    2.summation=0
    num=1
    while num<=100:
    if (num%3==0 or num%7==0) and num%21!=0:
    summation += 1
    num+=1
    print(summation)

    答:
        if (num%3==0 or num%7==0) and num%21!=0:
        判断num值能否被3或者7整除,并且num值不能被21整除。
    1)功能:寻找100以内(包含100)能被3或者7整除的数,并且值不能被21整除。
    2)结果为:39

    summation=0
    num=1
    while num<=100:
        if (num%3==0 or num%7==0) and num%21!=0:
            summation += 1
        num+=1
    print(summation)
    #39
    

    3.编程实现(for和while各写一遍):
    1. 求1到100之间所有数的和、平均值
        结果:和5050,平均值50.50

    #for语句
    cont=0
    ave=0
    for x in range(1,101):
        cont+=x
        if(x==100):
            ave=cont/100
            print('和为:%d,平均值为:%.2f'%(cont,ave))
    #和为:5050,平均值为:50.50
    #while语句
    cont=1
    sum1=0
    ave=0
    while cont<=100:
        sum1+=cont
        if(cont==100):
            ave=sum1/100
        cont+=1
    print('和为:%d,平均值为:%.2f'%(sum1,ave))
    

    2. 计算1-100之间能3整除的数的和  结果:4

    #for语句
    cont=0
    for x in range(1,101):
        if 3%x==0:
            cont+=x 
    print(cont) 
    #while语句
    i=0
    sum2=0
    while i<100:
        i+=1
        if not 3%i:
            sum2+=i
    print(sum2)
    #4
    

    3. 计算1-100之间不能被7整除的数的和  结果:4315

    a=0
    for x in range(1,101):
        if x%7!=0:
            a+=x
    print(a)
    #4315
    
    i=0
    sum1=0
    while i<100:
        i+=1
        if i%7!=0:
            sum1+=i
    print(sum1)
    #4315
    

    4.打印出所有的水仙花数,所谓水仙花数是指一个三位数,其各位数字立方和等于该数本身。
    例如:153是一个水仙花数,因为153 = 1^3 + 5^3 + 3^3

    结果:153 370 371 407

    a=(x//100)**3
    b=(x%100//10)**3
    c=(x%100%10)**3
    for x in range(100,1000):
        if (a+b+c)==x:
            print(x)  #153 370 371 407
    

    相关文章

      网友评论

          本文标题:2018-08-23 Day4

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