Python 学习随笔 20190307

Python 学习随笔 20190307
1.
如果中文字符串在Python环境下遇到 UnicodeDecodeError,这是因为.py文件保存的格式有问题。可以在第一行添加注释

-- coding: utf-8 --

目的是告诉Python解释器,用UTF-8编码读取源代码。然后用Notepad++ 另存为… 并选择UTF-8格式保存。

代码

'''# -*- coding:`在这里插入代码片` utf-8 -*-

print u'''静夜思
床前明月光,
疑是地上霜。
举头望明月,
低头思故乡。'''

2.
在Python中,布尔类型还可以与其他数据类型做 and、or和not运算,如
a = True
print a and ‘a=T’ or ‘a=F’
计算结果不是布尔类型,而是字符串 ‘a=T’,这是为什么呢?

因为Python把0、空字符串’'和None看成 False,其他数值和非空字符串都看成 True,所以:

True and ‘a=T’ 计算结果是 ‘a=T’
继续计算 ‘a=T’ or ‘a=F’ 计算结果还是 ‘a=T’
要解释上述结果,又涉及到 and 和 or 运算的一条重要法则:短路计算。

  1. 在计算 a and b 时,如果 a 是 False,则根据与运算法则,整个结果必定为 False,因此返回 a;如果 a 是 True,则整个计算结果必定取决与 b,因此返回 b。

  2. 在计算 a or b 时,如果 a 是 True,则根据或运算法则,整个计算结果必定为 True,因此返回 a;如果 a 是 False,则整个计算结果必定取决于 b,因此返回 b。

所以Python解释器在做布尔运算时,只要能提前确定计算结果,它就不会往后算了,直接返回结果。

任务
请运行如下代码,并解释打印的结果:

a = ‘python’
print ‘hello,’, a or ‘world’
b = ‘’
print ‘hello,’, b or ‘world’

a = 'python'
print 'hello,', a or 'world'
hellow,python
b = ''
print 'hello,', b or 'world'
hellow,world

3.
(1)数据类型:整数,浮点数,字符串,布尔值(True,False),空值(none)
(2)十六进制表示:0x(前缀)0-9a-f
(3)<<<提示符;#注释符(直到行尾);数字可以直接打印,字符要在’'里面才能打印
(4)在Python程序中,变量是用一个变量名表示,变量名必须是大小写英文、数字和下划线(_)的组合,且不能用数字开头,比如:
a = 1
变量a是一个整数。
t_007 = ‘T007’
变量t_007是一个字符串。
x = 10
x = x + 2
解释如下代码b=‘ABC’

a = 'ABC'
b = a
a = 'XYZ'
print b

(5)转义
\n 表示换行
\t 表示一个制表符
\ 表示 \ 字符本身
(6)请把下面的字符串用r’’’…’’'的形式改写,并用print打印出来:

‘“To be, or not to be”: that is the question.\nWhether it’s nobler in the mind to suffer.’
(7)用u’…‘表示,比如:
print u’中文’
中文
注意: 不加 u ,中文就不能正常显示。
Unicode字符串除了多了一个 u 之外,与普通字符串没啥区别,转义字符和多行表示法仍然有效:
转义:
u’中文\n日文\n韩文’
(8)请计算 2.5 + 10 / 4 ,并解释计算结果为什么不是期望的 5.0 ?
(9)a=T

a = True
print a and 'a=T' or 'a=F'

要解释上述结果,又涉及到 and 和 or 运算的一条重要法则:短路计算。

  1. 在计算 a and b 时,如果 a 是 False,则根据与运算法则,整个结果必定为 False,因此返回 a;如果 a 是 True,则整个计算结果必定取决与 b,因此返回 b。

  2. 在计算 a or b 时,如果 a 是 True,则根据或运算法则,整个计算结果必定为 True,因此返回 a;如果 a 是 False,则整个计算结果必定取决于 b,因此返回 b。

所以Python解释器在做布尔运算时,只要能提前确定计算结果,它就不会往后算了,直接返回结果。

猜你喜欢

转载自blog.csdn.net/Pureicew/article/details/88322287
今日推荐