预习

预习完了,哈哈哈,开始写今天的总结吧。

前言时刻

今天学的比较水,一上午就把一天的课程都给看完了,写写都学了啥

内容:

1、while循环语句、逻辑运算、算术运算、格式化输出、字符编码

1、while循环语句

简单的语法我就不说了,我就说一个我之前没学过的方法,while ……else……

  1. # 1、while else用法,之前还没学过呢
  2. NUM = 2 # 定义常量(注意全大写字母) 用于比较counter
  3. counter = 0
  4. while counter<NUM:
  5. print("计数中……")
  6. counter+=1
  7. # if counter == 1:
  8. # break
  9. else:
  10. print("计数大于NUM了")
  11. 计数中……
  12. 计数中……
  13. 计数大于NUM

但是当 while 中未被 break 打断时,以及while语句正常执行完毕,就会执行 else 语句。个人觉得 else 语句主要用于有 break 的情况下,若有break的语句则不执行 else 中的语句问题。

2、逻辑、算术运算

这里面有个点很重要,面试常问,多多练习,

下面是 Python 的运算符的优先级从高到低排列,同一行从左到右优先级递减。

运算符 描述
** 指数 (最高优先级)
~ + - 按位翻转, 一元加号和减号 (最后两个的方法名为 +@ 和 -@)
* / % // 乘,除,取模和取整除
+ - 加法减法
>> << 位运算符,右移,左移运算符
& 位运算符, ‘AND’
^ | 位运算符,异或和或
<= < > >= 比较运算符
<> == != 等于运算符
= %= /= //= -= += = *= 赋值运算符
is is not 身份运算符
in not in 成员运算符
not and or 逻辑运算符
  1. # 2、逻辑运算符 not and or
  2. # and
  3. print(1 and 2) # 2
  4. print(0 and 2) # 0
  5. # or
  6. print(-2 or 6) # -2
  7. print(0 or 6) # 6
  8. # not
  9. print(not 1 and 6) # False
  10. print(not 0 and 6) # 6 not的优先级比and高
  11. # 组合运算 面试题**
  12. print(6 or 0 and 2) # 6
  13. print(8>6 or 0 and 2) # True
  14. # 解释:比较运算符的优先级高于逻辑运算,所有变成True or 0 and 2。又and高于or,所有变成True or 0 == True
  15. # 逻辑运算符优先级:not>and>or

以上例子涉及一个名词,那就是 “逻辑短路”,和 c++ 中的逻辑运算一毛一样。

  • 当或 or 运算时,若前面的对象是非零数,那么直接输出此数,后面的对象无需判断,即有真即真。若是零,则输出后面的对象的数值。
  • 当与 and 运算时,若前面的对象是0,那么直接输出0,后面的也无需判断,有假即假。若非零,则输出后面的对象的数值。

3、格式化输出

格式化输出内容超级重要,通常用于一些模板字符串中。格式化输出内容有三种方式,前提你的 Python 需升级到 3.6 以上。

  1. 最早,使用占位字符%,后面跟s=str,d=int(10进制),x=hex(16进制),o=oct(8进制)。
  2. 较方便,使用format,test_str.format(‘1’, ‘2’)
  3. 最好用(Python3.6添加的特性),直接在字符串中添加变量,超方便

3.1、%占位字符

例子:

  1. # 4.1 %
  2. msg = """
  3. 名字:%s,
  4. 年龄:%d,
  5. 8进制:%o,
  6. 16进制:%x,
  7. 爱好:%s
  8. """ % ("西园公子", 18, 16, 24, "看电影") # %o将数转成8进制, %x将数转成16进制
  9. print(msg)
  10. # 打印
  11. 名字:西园公子,
  12. 年龄:18
  13. 8进制:20,
  14. 16进制:18,
  15. 爱好:看电影

还有一个重点是使用%可以格式化输出数字,控制小数点后的有效位数。

  1. # 2、输出格式化的数
  2. print("%.2f" % 10) # 10.00

3.2、format用法

  1. # 4、格式化输出内容
  2. # 4.2 format
  3. msg2 = """
  4. 方式:{}
  5. 名字:{},
  6. 年龄:{},
  7. 爱好:{}
  8. """.format("顺序型", "西园公子", 18, "看电影")
  9. print(msg2)
  10. msg2_1 = """
  11. 方式:{0}
  12. 名字:{2},
  13. 年龄:{1},
  14. 爱好:{0}
  15. """.format("索引型", "西园公子", 18, "看电影")
  16. print(msg2_1)
  17. msg2_2 = """
  18. 方式:{msg}
  19. 名字:{name},
  20. 年龄:{age},
  21. 爱好:{hobby}
  22. """.format(hobby="看电影",name="西园公子", age=18, msg="键值型")
  23. print(msg2_2)
  1. # 打印
  2. 方式:顺序型
  3. 名字:西园公子,
  4. 年龄:18
  5. 爱好:看电影
  6. 方式:索引型
  7. 名字:18
  8. 年龄:西园公子,
  9. 爱好:索引型
  10. 方式:键值型
  11. 名字:西园公子,
  12. 年龄:18
  13. 爱好:看电影

3.3、字符串内置{}

具体用法是在字符串的引号之前加上 f ,意味着里面的 {} 包裹的内容会被当成普通代码进行渲染。

  1. name = "西园公子"
  2. age = 18
  3. hobby = "看电影"
  4. msg3 = f"""
  5. 名字:{name},
  6. 年龄:{age},
  7. 爱好:{hobby}
  8. """
  9. print(msg3)
  10. 名字:西园公子,
  11. 年龄:18
  12. 爱好:看电影

4、数据编码

这个问题之前写的博客总结的很全,所以此处就简短的回忆一波,就当是复习了。

今日总结:

觉得养成习惯的过程真的很痛苦,但是一定要咬牙坚持。当坚持一段时间后变成习惯,那就happy了,不要躺在舒适区内,提升自己,才会遇见更好的自己,Just do it!

参考文章:

format格式化:https://www.runoob.com/python/att-string-format.html