• day 2


    1. 初识编码

    最早的'密码本' ascii 涵盖了英文字母大小写,特殊字符,数字。

    ascii 只能表示256种可能,太少,
    后来创办了万国码 unicode
    16表示一个字符不行,32位表示一个字符。
      A 01000001010000010100000101000001
      B 01000010010000100100001001000010
      我 01000010010000100100001001000010
    Unicode 升级 utf-8 utf-16 utf-32
      8位 = 1字节bytes
      utf-8 一个字符最少用8位去表示,英文用8位 一个字节
      欧洲文字用16位去表示 两个字节
      中文用24 位去表示 三个字节
      utf-16 一个字符最少用16位去表示

    gbk 中国人自己发明的,一个中文用两个字节 16位去表示。

    编码转换

    #str --->byte  encode 编码
    s = '亦双弓'
    b = s.encode('utf-8')
    print(b)
    #byte --->str decode 解码
    s1 = b.decode('utf-8')
    print(s1)
    
    
    #字母数字特殊字符的编码 utf-8 与 gbk 可以互转
    s = 'abc##123'
    b = s.encode('utf-8')
    print(b)
    #byte --->str decode 解码
    s1 = b.decode('gbk')
    print(s1)

    2.单位转换

      1bit 8bit = 1bytes
      1byte 1024byte = 1KB
      1KB 1024kb = 1MB
      1MB 1024MB = 1GB
      1GB 1024GB = 1TB

    3.格式化输出

    name = input('请输入姓名:')
    age = input('请输入年龄:')
    height = input('请输入身高:')
    msg = '我叫%s,今年%s,身高%s'%(name,age,height)
    print(msg)
    name = input('请输入姓名:')
    age = input('请输入年龄:')
    job = input('请输入工作:')
    hobbie = input('你的爱好:')
    msg = '''
    ------------ info of %s ------------
    
    Name:%s
    
    Age:%d
    
    Job:%s
    
    hobbie:%s
    
    ----------------end-----------------
    '''%(name,name,int(age),job,hobbie)
    print(msg)

    在输出语句中有时会使用到 % ,这时需要使用 %% 来转义,如下:

    name = input('请输入姓名')
    age = input('请输入年龄')
    height = input('请输入身高')
    msg = "我叫%s,今年%s 身高 %s 学习进度为3%%s" %(name,age,height)
    print(msg)

    4.逻辑运算

    and or not
    优先级,()> not > and > or

      not –表示取反运算。

      and –表示取与运算。

      or –表示取或运算。

    print(1<4 and 8>7)
    print(1<4 and 8>9)
    print(2 > 1 and 1 < 4 or 2 < 3 and 9 > 6 or 2 < 4 and 3 < 2)
    
    
    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
    print(not 2 > 1 and 3 < 4 or 4 > 5 and 2 > 1 and 9 > 8 or 7 < 6)    #F

    x or y,x 为非零,则返回x,否则返回 y 

    print(1 or 2)   #1
    print(3 or 2)   #3
    print(0 or 2)   #2
    print(0 or 100)   #100
    print(2 or 100 or 3 or 4)  # 2
    print(0 or 4 and 3 or 2)    #3

    x and y,x True,则返回y

    print(1 and 2)  #2
    print(0 and 2)  #0
    print(2 or 1 < 3)   #2
    print(2 < 3)    #T
    print(3 > 1 or 2 and 2)     #T
    print(2 or 1 < 3 and 2)     #2
    print (1 > 2 and 3 or 4 and 3 < 2)  #F

    int  ----> bool   非零转换成bool True   0 转换成bool 是False

    print(bool(2))
    print(bool(-2))
    print(bool(0))
    #bool --->int
    print(int(True))   # 1
    print(int(False))  # 0

    5. while  else循环

    count = 0
    while count <= 5 :
        count += 1
        if count == 3:break
        print("Loop",count)
    else:
        print("循环正常执行完啦")
    print("-----out of while loop ------")

    相关练习

    1.判断一下输出

    print(5<4 or 6)
    print(5>4 or 6)
    print(5<4 and 6)
    print(5>4 and 6)

    2. 计算 1-2+3...+99 中除88以外的数总和

    自己写的第一种好理解,第三种逻辑很新颖,值得学习

    #方法一
    count=1
    sum=0
    while count <=99:
        if count%2==1:
            sum = sum + count
        elif count == 88:
                pass
        else:
            sum = sum - count
        count += 1
    print (sum)
    
    #方法二
    count=1
    sum=0
    while count <=99:
        if count == 88:
            count += 1
            continue
        if count%2==1:
            sum = sum + count
        else:
            sum = sum - count
        count +=1
    print (sum)
    
    
    i = input('数字')
    if i=='2':
        print(1212)
    if i =='2':
        print(11111)
    else:
        print(666)
    
    
    #方法三
    i=0
    j=-1
    sum = 0
    while i<99:
        i += 1
        j = -j
        if i== 88:
            continue
        else:
            sum +=i*j
    print(sum)

    3. ⽤户登陆(三次输错机会)且每次输错误时显示剩余错误次数(提示:使⽤字符串格式化)

    #方法一:
    i=0
    j=2
    while i<3:
        user=input("请输入账号:")
        password=input("请输入密码:" )
        if user=='ysg' and password=='123':
            print('欢迎回来'+user)
            break
        elif i==2:
            print("超出登录次数,账号已冻结")
        else:
            print('---输入错误,还剩余' + str(j) + '次机会,请重新输入---')
        i += 1
        j =j-1
    
    
    #方法二:
    i=2
    while i>=0:
        user=input("请输入账号:")
        password=input("请输入密码:" )
        if user=='ysg' and password=='123':
            print('欢迎回来%s'%(user))
            break
        elif i==0:
            print("超出登录次数,账号已冻结")
        else:
            print('---输入错误,还剩余' + str(i) + '次机会,请重新输入---')
        i -= 1
    
    
    #方法三
    i=2
    while i>=0:
        user=input("请输入账号:")
        password=input("请输入密码:" )
        if user=='ysg' and password=='123':
            print('欢迎回来%s'%(user))
            break
        elif i==0:
            print("超出登录次数,账号已冻结")
            again=input("再试一次?Y or N:")
            if(again=='Y'):
                i=3
        else:
            print('---输入错误,还剩余' + str(i) + '次机会,请重新输入---')
        i -= 1
    #else:
    #    print("还在试???")
  • 相关阅读:
    Python long() 函数
    Python frozenset() 函数
    java对象和构造方法的区别
    回顾方法和方法调用及加深
    面向过程&面向对象
    稀疏数组
    冒泡排序与八大排序
    Arrays类与常用功能
    二维数组的理解代码
    数组的使用
  • 原文地址:https://www.cnblogs.com/ysging/p/9692284.html
Copyright © 2020-2023  润新知