• python之路day02--格式化输出、初始编码、运算符


    格式化输出

    格式化输出替换字符串.字符串中%占位符,
    ,%%s就是代表百分号,不代表占位符
    s 字符串 string
    d 数字 dight
    name = input('请输入你的名字:')
    age = input('请输入你的年龄:')
    home = input('请输入你的城市:')
    
    msg= '''
    ---------info of %s--------
    name:%s
    age:%s
    home:%s
    -----------end-----------
    
    ''' % (name,name,age,home)
    
    print(msg)

    while else

    当while循环被break打断了就不会走esle(不被打断会走else,固定搭配)
    count =0
    while count<=5:
        count+=1
        if count==3:
            break
        print(count)
    else:
        print('循环正常执行完成啦~')
    print('-----out of while loop-----')

    初始编码初始编码

    电脑的传输,还有储存的实际上都是二进制0101010101

    美国Ascii码:ASCII 码使用指定的7 位或8 位二进制数组合来表示128 或256 种可能的字符
    8位二进制(2**8 256种可能字符足够使用)
    最左边是0(预留的一位)

    中文:9W多字
    为了解决全球化的文件问题,创建了万国码,unicode
    最开始:
    一个字节(byte),8位(bit),表示所有的英文,特殊字符,数字等等
    两个字节,16位表示一个中文,2**16=65536,不够用。
    unicode用四个字节表示,32位表示一个中文

    4个字节太浪费了升级版utf-8: 3个字节表示一个中文
    utf-8 最少8位来表示一个字节。 英文 一个字节 8位
                     欧洲 两个字节 16位
                     中文 三个字节 24位



    python2默认是ASCII码
    python3默认是utf-8

    GBK是国内使用的,只能用于中文和ASCII码中的文字。 中文2个字节,英文1个字节表示。

    编码转换:
    GBK是基于ASCII码升级的
    utf-8 是基于unicode,unicode是基于ASCII码升级
    所以UTF-8要转为GBK,要先转为unicode在进行转换。


    运算符

      计算机可以进行的运算有很多种,可不只加减乘除这么简单,运算按种类可分为算数运算、比较运算、逻辑运算、赋值运算、成员运算、身份运算、位运算,今天我们暂只学习算数运算、比较运算、逻辑运算、赋值运算、成员运算

    算数运算

    以下假设变量:a=10,b=20

    比较运算

    以下假设变量:a=10,b=20

    赋值运算

    以下假设变量:a=10,b=20

    逻辑运算

    
    
    针对逻辑运算的进一步研究:(前后有比较的结果只有True、false)

    在没有()的情况下not 优先级高于 and,and优先级高于or,即优先级关系为( )>not>and>or,同一优先级从左往右计算。
    例题:
    or:布尔"或" 一个为True就为True
    and:布尔"与" 两个为True才为True
    not:布尔"非" 取反

    1.判断下列逻辑语句的True,False。
    1)逻辑运算符前后是比较的时候,返回 True or False
    print(3>4 or 4<3 and 1==1 )  #F
    print(1 < 2 and 3 < 4 or 1>2) #T
    print(2 > 1 and 3 < 4 or 4 > 5 and 2 < 1) #T
    print(1 > 2 and 3 < 4 or 4 > 5 and 2 > 1 or 9 < 8) #F
    print(1 > 1 and 3 < 4 or 4 > 5 and 2 > 1 and 9 > 8 or 7 < 6) # F or F and T or F  :F
    print(not 2 > 1 and 3 < 4 or 4 > 5 and 2 > 1 and 9 > 8 or 7 < 6) #F or F and T or F: F
    2)逻辑运算符前后是数字的时候,返回数值
    ps:数据类型转换
    int --> bool 非零转换为bool为True, 0转换为bool为False
    print(bool(1)) #True
    print(bool(0)) #False
    bool--->int   True为1,, False为0
    print(int(True)) # 1
    print(int(False)) # 0
    
    
    x or y  x为非0,即为T,返回x ,x为0,返回y
    and 与 or 相反,记住一个就可以了
    print(1 or 2) #1
    print(0 or 2) #2

     

    相关练习题

     

    print(2 or 100 or 23) #2
    print(0 or 4 and 3 or 2) #3
    
    print(2 or 1 <3) #2  前面为数字的按照数字,x为T,返回x,机器是从左至右处理
    print(0 or 5 <4)#false x为F,返回y y为False
    print(5 < 4 or 3)#3 x为F ,返回y
    print(5 > 4 or 3)#T x为T,返回x print(2 or 1 <3 and 2) #2 print(1 > 2 and 3 or 4 and 3<2) #False

     

     ps:

    1-2+3-4...+99 ,求除88外的和
    
    
    count =1
    sum =0
    
    while count < 100:
        if count == 88:
            count+=1
            continue  #跳到行首 while
        elif count % 2 ==1:
            sum +=count
        else:
            sum -=count
        count+=1
    print(sum)

     

    #if else

    i = input('数字')
    if i == 2:
        print('111')
    if i ==3:
        print('222')
    else:
        print('333')
     第一个if 是一个单独的判断语句,和后面的不是组合


     用户登录(三次输错机会)且每次输错时显示错误次数(提示使用字符串格式化)
    
    
    i=1
    while i <=3:
        name = input('请输入你的用户名:')
        password = input('请输入你的密码:')
    
        if name == 'zy' and password =='pass':
            print('----登录成功!----')
            break
        if i == 1 and name != 'zy' or password != 'pass':
            print('登录失败%s次了' % i)
            print('还有'+str(3-i)+'次机会')
    
        i +=1
    else:
        print('你真是个笨比')
    
    
    
     


     
  • 相关阅读:
    Java微信分享接口开发
    lintcode 刷题 by python 部分链表题总结(2)
    基于CART的回归和分类任务
    机器学习: K-means 聚类
    python 中的堆 (heapq 模块)应用:Merge K Sorted Lists
    名人、皇家谱系
    python实现数组和链表的归并排序
    Python 正则 —— 捕获与分组
    ArcGIS中的数据连接问题——数据类型不统一
    Spring boot 搭建
  • 原文地址:https://www.cnblogs.com/hanfe1/p/10184807.html
Copyright © 2020-2023  润新知