Python之路day02-逻辑运算_格式化输出_字符编码

300次阅读
没有评论

预习

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

前言时刻

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

内容:

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

1、while循环语句

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

# 1、while else用法,之前还没学过呢

NUM = 2   # 定义常量(注意全大写字母) 用于比较counter

counter = 0
while counter<NUM:
    print("计数中……")
    counter+=1
#     if counter == 1:
#         break
else:
    print("计数大于NUM了")

计数中……
计数中……
计数大于NUM了

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

2、逻辑、算术运算

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

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

运算符 描述
** 指数 (最高优先级)
~ + - 按位翻转, 一元加号和减号 (最后两个的方法名为 +@ 和 -@)
* / % // 乘,除,取模和取整除
+ - 加法减法
>> << 位运算符,右移,左移运算符
& 位运算符, 'AND'
^ | 位运算符,异或和或
<= < > >= 比较运算符
<> == != 等于运算符
= %= /= //= -= += *= **= 赋值运算符
is is not 身份运算符
in not in 成员运算符
not and or 逻辑运算符
# 2、逻辑运算符 not and or

# and
print(1 and 2)   # 2
print(0 and 2)      # 0

# or
print(-2 or 6)   # -2
print(0 or 6)    # 6

# not
print(not 1 and 6)    # False
print(not 0 and 6)    # 6    not的优先级比and高

# 组合运算 面试题**
print(6 or 0 and 2)  # 6
print(8>6 or 0 and 2)   # True
# 解释:比较运算符的优先级高于逻辑运算,所有变成True or 0 and 2。又and高于or,所有变成True or 0 == True

# 逻辑运算符优先级: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、%占位字符

例子:

# 4.1 %

msg = """
名字:%s,
年龄:%d,
8进制:%o,
16进制:%x,
爱好:%s
""" % ("西园公子", 18, 16, 24, "看电影")     # %o将数转成8进制, %x将数转成16进制
print(msg)

# 打印
名字:西园公子,
年龄:18,
8进制:20,
16进制:18,
爱好:看电影

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

# 2、输出格式化的数

print("%.2f" % 10)   # 10.00 

3.2、format用法

# 4、格式化输出内容

# 4.2 format
msg2 = """
方式:{}
名字:{},
年龄:{},
爱好:{}
""".format("顺序型", "西园公子", 18, "看电影")
print(msg2)

msg2_1 = """
方式:{0}
名字:{2},
年龄:{1},
爱好:{0}
""".format("索引型", "西园公子", 18, "看电影")
print(msg2_1)

msg2_2 = """
方式:{msg}
名字:{name},
年龄:{age},
爱好:{hobby}
""".format(hobby="看电影",name="西园公子", age=18, msg="键值型")
print(msg2_2)
# 打印
方式:顺序型
名字:西园公子,
年龄:18,
爱好:看电影

方式:索引型
名字:18,
年龄:西园公子,
爱好:索引型

方式:键值型
名字:西园公子,
年龄:18,
爱好:看电影

3.3、字符串内置{}

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

name = "西园公子"
age = 18
hobby = "看电影"

msg3 = f"""
名字:{name},
年龄:{age},
爱好:{hobby}
"""
print(msg3)

名字:西园公子,
年龄:18,
爱好:看电影

4、数据编码

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

今日总结:

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

参考文章:

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

1
西园公子
版权声明:本站原创文章,由西园公子2021-04-02发表,共计2208字。
转载提示:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
评论(没有评论)
载入中...