美文网首页
03 常用技巧介绍-(格式化、编码、while else、运算符

03 常用技巧介绍-(格式化、编码、while else、运算符

作者: 武漂的小丙 | 来源:发表于2019-08-25 21:19 被阅读0次

1 格式化输出

  • % 在字符串里的占位符;
    • %s:字符串占位符
    • %d:数字占位符;
    • %%:格式化输出中表示单纯的%
  • %(param1, param2, param3) 按顺序替换字符串中的占位符;
templateMsg = '''
Name : %s
Age : %d
job : %s
Hobbie :%s
study plan: 3%%
'''
name = input('请输入姓名:')
age = input('请输入年龄:')
job = input('请输入职业:')
hobbie = input('请输入爱好:')

msg = templateMsg %(name, int(age), job, hobbie)

print(msg)

'''输出结果如下:

请输入姓名:程帅
请输入年龄:22
请输入职业:程序员
请输入爱好:打篮球

Name : 程帅
Age : 22
job : 程序员
Hobbie :打篮球
study plan: 3%
'''

2 while else搭配

  • 当while循环被打断时,else就不会执行;

  • 当while正常结束的时候,else就会正常执行;

  • 示例:

    • while正常结束:
    count = 0
    while count <= 5:
        count += 1
        if count == 3: pass;
        print("Loop", count)
    else:
        print('循环正常执行完成')
    print("-------out of while loop--------------")
    
    '''输出结果如下:
    Loop 1
    Loop 2
    Loop 3
    Loop 4
    Loop 5
    Loop 6
    循环正常执行完成
    -------out of while loop--------------
    
    Process finished with exit code 0
    '''
    
  • while被break打断:
count = 0
while count <= 5:
    count += 1
    if count == 3: break;
    print("Loop", count)
else:
    print('循环正常执行完成')
print("-------out of while loop--------------")

'''输出结果如下:
Loop 1
Loop 2
-------out of while loop--------------

Process finished with exit code 0
'''
  • 综合示例:
'''
1. 正确输入用户名和密码,打印“登录成功!”
2. 用户名和密码输错,打印“登录失败,请重新登录!”
3. 用户名和密码输错三次,提示用户:“密码错误次数3次,输入yes重试:”
  3.1 输入yes:提示“要不要脸啦!”
  3.2 程序结束
'''

i = 0
while i < 3:
    username = input("请输入账号:")
    password = input("请输入密码:")
    if username == 'root' and password == '123456':
        i = 3
        print('登录成功!')
        continue
    else:
        print('登录失败,请重新登录!')
    if 2 - i <= 0:
        open = input('密码错误次数3次,输入yes重试:')
        if open != 'yes':
            break
    i += 1
else:
    print('要不要脸啦!')

3 编码

  • 编码的作用:为了通讯双方能看懂PC的二进制的统一规则,类似发电报双发的密码本;

  • ascii码:包含英文字母,数字,特殊字符与01010101对应关系

    • 历史:

      • 美国标准信息交换代码是由美国国家标准学会(American National Standard Institute , ANSI )制定的,标准的单字节字符编码方案,用于基于文本的数据。起始于50年代后期,在1967年定案。它最初是美国国家标准,供不同计算机在相互通信时用作共同遵守的西文字符编码标准,它已被国际标准化组织(International Organization for Standardization, ISO)定为国际标准,称为ISO 646标准。适用于所有拉丁文字字母。
    • 8位 = 1字节bytes
      2^8 = 256

  • 英文字母大小写、特殊字符和数字总共也就100多个,一个字节足以描述;

  • 遇到中文9万多汉字就没法满足,2个字节也就6万多个数字也无法满足;

  • ​ unicode:为了解决全球化的文字问题,创建了一个万国码unicode

    • 16表示一个字符不行,32位表示一个字符。
    • 一个字节表示所有的英文
    • 四个字节表示一个中文
    • 示例
    A  01000001010000010100000101000001
    B  01000010010000100100001001000010
    我 01000010010000100100001001000010
    
  • utf-8:unicode升级版,用三个字节表示中文;

    • 解决占位浪费的问题
    • 三个字节有1600万,足以满足各国语言的字
  • gbk:

    • 国内使用;
    • 一个中文字用2个字节来表示;
    • 因为汉字有9万多个,所以无法包含所有的汉字;
  • 单位换算:
8bit = 1byte
1024byte = 1KB
1024KB = 1MB
1024MB = 1GB
1024GB = 1TB
1024TB = 1PB
1024PB = 1EB
1024EB = 1ZB
1024ZB = 1YB
1024YB = 1NB
1024NB = 1DB
常⽤到TB就够了

4 运算符

  • 计算机运算分类:

    • 算数运算
    • 比较运算
    • 逻辑运算
    • 赋值运算
    • 成员运算
    • 身份运算
    • 位运算
  • 算数运算:

    • 示例
    >>> 5/2
    2.5
    >>> 5//2
    2
    >>> 5.0//2.0
    2.0
    
    • 汇总:
988316-20170918164114681-450791355.png
  • 赋值变量:

    • 示例:
  • 汇总:


    988316-20170918164210728-1331769834.png
  • 逻辑运算:

    • 示例
    # x or y ,如果 x 为非零,则返回 x
    # 如果 x 为零, 则返回 y
    print(1 or 2)
    print(2 or 1)
    print(0 or 3)
    '''输出结果如下:
    1
    2
    3
    '''
    
    # x and y , 如果 x 为非零,则返回y
    # 如果x 为零, 则返回x
    print(1 and 2)
    print(2 and 1)
    print(0 and 3)
    '''输出结果如下:
    2
    1
    0
    '''
    
    # 从左往有逐个运算,如下:
    # 2 or 100 返回 2
    # 2 or 3 返回 2 
    # 2 or 4 返回 2
    # 最终返回 2 
    print(2 or 100 or 3 or 4)
    
    #同理0 or 100 返回 100
    #100 or 3 返回 100
    #100 or 4 返回 100
    #最终返回 100
    print(0 or 100 or 3 or 4)
    
    # 同理先算优先级高的:
    # 1 > 2 返回 Flase
    # 3 < 2 返回 Flase
    # 演变成 Flase and 3 or 4 and Flase
    # 再算优先级高的 and
    # Flase and 3 返回 Flase
    # 4 and Flase 返回 Flase
    # 演变成 Flase or Flase
    # 最终 返回 Flase
    print(1 >2 and 3 or 4 and 3 < 2)
    
    # 同理先算优先级高的 1<3 返回True
    # 演变成 2 or True and 3
    # 再算优先级高的 True and 3 返回 3
    # 演变成 2 or 3 返回 2
    # 最终返回 2
    print(2 or 1 < 3  and 3)
    
  • 汇总:
988316-20170918164226540-2018438327.png
  • 成员运算

    • 汇总


      988316-20181019153207737-1857017047.png
    • 示例:

    #print('喜欢' in 'dkfljadklf喜欢hfjdkas')
    #print('a' in 'bcvd')
    #print('y' not in 'ofkjdslaf')
    
  • 运算符的优先级:
1566738810983.png

相关文章

网友评论

      本文标题:03 常用技巧介绍-(格式化、编码、while else、运算符

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