zoukankan      html  css  js  c++  java
  • 第二章 Python基础(二)

    1 字符串格式化

    有一个简单的个人名片,包含 name、age、job、hobby信息:

     ------------ info of Mr.Wang -----------
     Name : Mr.Wang
     Age : 23
     job : Student
     Hobbie: boy
     ------------- end -----------------

    如果通过简单的字符拼接的方法完成上面的需求,会发现第一,很难实现。第二,实现后如果需要更改名片上的个人信息很困难。所以我们需要一个新的操作姿势来完成这些问题——“格式化输出”。

    只需要把需要打印的格式先准备好,里面需要用户输入的值我们先放置占位符,再把字符串里的占位符与外部的变量做个映射就ok:

     # 名片格式化输出
     name = input("请输入姓名:")
     age = int(input("请输入年龄:"))
     job = input("请输入工作:")
     hobbie = input("请输入性别:")
      
     print("---------- info of %s ----------" % name)
     print("Name: %s" % name)
     print("Age: %d" % age)
     print("Job: %s" % job)
     print("Hobbie: %s" % hobbie)
     print("------------- end -------------")

    或者说:

     name = input("Name:")
     age = input("Age:")
     job = input("Job:")
     hobbie = input("Hobbie:")
     info = '''
     ------------ info of %s ----------- #这⾥的每个%s就是⼀个占位符,本⾏的代表 后⾯拓号⾥的 name
     Name : %s #代表 name 
     Age : %s #代表 age
     job : %s #代表 job
     Hobbie: %s #代表 hobbie
     ------------- end -----------------
     ''' % (name,name,age,job,hobbie) # 这⾏的 % 号就是把前⾯的字符串与拓号后⾯的变量关联起来
     print(info) 

    向上面将字符串按照一定的格式打印或者填充就被称作为“字符串的格式化输出”。

    两种方式:

    1. 利用百分号格式化

      • 在字符串中利用 % 表示一个特殊的含义

      • %d:此处应该放置一个整数(int型)

      • %s:表示此处应该放置一个字符串

      (也可以全部都使用 %s,因为任何东西都可以直接转换为字符串 -->仅限 %s )

       s = "I am %s, i am %s years old"
       print(s)
       #注意出错原因跟
       #有几个占位符必须用几个实际的内容代替,或者一个也不要
       #print(s%“tulingxueyuan”)
       print(s%("Mr.Wang",18))

      那么现在又有一个问题,我们如果输入以下一个程序:

      我叫xxx, 今年xx岁了,我们已经学习了2%的python基础了

      这里的问题是我们如果计划使用 %s 这样的占位符,那么所有的 % 都将变成占位符,我们的%2也将成为占位符。而“%的”是不存在的,这里的话我们就需要用 “%%”来表示 %。

      注意:如果我们的字符串中没有出现“%s 、%d”这样的占位,那么就不用考虑这些问题。该用 % 就用 %。

       print("我叫%s, 今年22岁了, 学习python2%%了" % '王尼玛') # 有%占位符
       print("我叫王尼玛, 今年22岁, 已经凉凉了100%了") # 没有占位符
    2. format函数格式化

    • 直接使用format函数进行格式化

    • 在使用上,以 {} 和 :代替 % 号。后面用format带参数完成。

     s = "I love {}". format("Beautiful Girl")
     print(s)
     #format后的内容按照先后顺序带入序号
     s = "Yes, I am {1} years old, I Love {0} and i am {1} years old".format("Beautiful Girl", 18)
     print(s)

    2 运算符

    - 由一个以上的值经过变化得到新值的过程就叫做运算

    2.1 分类

    • 算数运算

    • 比较运算

    • 逻辑运算

    • 赋值运算

    • 成员运算

    • 身份运算

    • 位运算

    2.2 算数运算

      “ + 、- 、 * 、/ 、 %(取余)、 **(次幂) 、 //(取整)”

    2.3 比较运算

    - “ == ”—— 等于:比较对象是否相等

    - “!=”—— 不等于

    - “<>”—— 不等于

    - " > 、<" —— 大于、小于

    - " >= 、 <=" —— 大于等于、小于等于

    2.4 赋值运算

    2.5 逻辑运算

    针对逻辑运算的进一步研究:

    1. 在没有()的情况下not的优先级高于and,and的优先级高于or,即:

      统一优先级从左往右算:()> not > and >or

      例题:  

       # 判断下列逻辑语句的True,False。
       print(3 > 4 or 4 < 3 and 1 == 1) # F
       print(1 < 2 and 3 < 4 or 1 > 2) # T
       print(3 > 4 and 2 < 5 or 8 > 6 and 4 < 3 or 6 < 8) # T
       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
    2. x or y,x为真,值就是x,x为假,值就是y;

      x and y,x为真,值是y,x为假,值就是x。

      例题: 求出下列逻辑的值

       print(8 or 4) # 8
       print(4 or 8) # 4
       print(0 or 4) # 4
       print(4 and 0) # 0
       print(0 or 4 or 8) # 4
       print(4 or 5 and 0) # 4
       print(0 or 4 and 8 and 7 or 6) # 7 

    3 编码的问题

    python2解释器在加载 .py ⽂件中的代码时,会对内容进⾏编码(默认ascill),⽽python3对内容进⾏编码的默认为utf- 8。 计算机: 早期. 计算机是美国发明的. 普及率不⾼, ⼀般只是在美国使⽤. 所以. 最早的编码结构就是按照美国⼈的习惯来编码 的. 对应数字+字⺟+特殊字符⼀共也没多少. 所以就形成了最早的编码ASCII码. 直到今天ASCII依然深深的影响着我们. ASCII(American Standard Code for Information Interchange,美国标准信息交换代码)是基于拉丁字⺟的⼀套电 脑编码系统,主要⽤于显示现代英语和其他⻄欧语⾔,其最多只能⽤ 8 位来表示(⼀个字节),即:2**8 = 256,所 以,ASCII码最多只能表示 256 个符号。

    随着计算机的发展. 以及普及率的提⾼. 流⾏到欧洲和亚洲. 这时ASCII码就不合适了. ⽐如: 中⽂汉字有⼏万个. ⽽ASCII 最多也就256个位置. 所以ASCII不⾏了. 怎么办呢? 这时, 不同的国家就提出了不同的编码⽤来适⽤于各⾃的语⾔环境. ⽐如, 中国的GBK, GB2312, BIG5, ISO-8859-1等等. 这时各个国家都可以使⽤计算机了.

    GBK, 国标码占⽤2个字节. 对应ASCII码 GBK直接兼容. 因为计算机底层是⽤英⽂写的. 你不⽀持英⽂肯定不⾏. ⽽英 ⽂已经使⽤了ASCII码. 所以GBK要兼容ASCII.

    这⾥GBK国标码. 前⾯的ASCII码部分. 由于使⽤两个字节. 所以对于ASCII码⽽⾔. 前9位都是0

    字⺟A:0100 0001 # ASCII

    字⺟A:0000 0000 0100 0001 # 国标码

    国标码的弊端: 只能中国⽤. ⽇本就垮了. 所以国标码不满⾜我们的使⽤. 这时提出了⼀个万国码Unicode. unicode⼀ 开始设计是每个字符两个字节. 设计完了. 发现我⼤中国汉字依然⽆法进⾏编码. 只能进⾏扩充. 扩充成32位也就是4个字 节. 这回够了. 但是. 问题来了. 中国字9万多. ⽽unicode可以表⽰40多亿. 根本⽤不了. 太浪费了. 于是乎, 就提出了新的 UTF编码.可变⻓度编码

    UTF-8: 每个字符最少占8位. 每个字符占⽤的字节数不定.根据⽂字内容进⾏具体编码. 比如. 英⽂. 就⼀个字节就够了. 汉 字占3个字节. 这时即满⾜了中⽂. 也满⾜了节约. 也是⽬前使⽤频率最⾼的⼀种 编码

    UTF-16: 每个字符最少占16位.

    GBK: 每个字符占2个字节, 16位.

    单位转换:

    8bit = 1byte

    1024byte = 1KB

    1024KB = 1MB

    1024MB = 1GB

    1024GB = 1TB

    1024TB = 1PB

    1024TB = 1EB

    1024EB = 1ZB

    1024ZB = 1YB

    1024YB = 1NB

  • 相关阅读:
    记一次在Windows10桌面环境搭建Jekins的吐血经历
    Windows系统下的输入法选择
    Linux后台进程启停脚本模板
    crontab采坑总结
    编程软件仓库集合
    CentOS7安装Chrome及驱动
    不错的“淘宝”网站
    软件下载网站集合
    在线API集合
    在线教程集合
  • 原文地址:https://www.cnblogs.com/jiumo/p/9382485.html
Copyright © 2011-2022 走看看