3、解释一下python的 and-or 语法?
and-or 语法相当于java中的三元运算 bool?a:b
当bool为真则返回结果a,否则返回结果b
例如:
<span style="font-size:18px;">>>> a='abc'
>>> b='bcd'
>>> len(a)>0 and a or b</span>
'abc'
有一种特殊情况需要注意:在python中 1表示真,0表示假,所以可能造意外的结果。
例如:
<span style="font-size:18px;">>>> e=0
>>> f=1
>>> e and e or f
1</span>
个人理解是这里把and 和or当成了布尔运算,效果等同于下面的表达式:
<span style="font-size:18px;">>>> False and False or True
True</span>
为了避免这种情况的发生,需要安全的使用and-or语句:
<span style="font-size:18px;">>>> a1=''
>>> a2='a2'
>>> a1 and [a1] or [a2]
['a2']
>>> (a1 and [a1] or [a2])[0]
'a2'</span>
这样返回的结果是列表,因为在列表[a1]中是有一个值的,所以不论这个值是什么,都是真,哪怕其中存储的对象是0、False等表示假的值。
4、Python是如何进行类型转换的?
类型转换之前,需要明确python的类型:
字符串、布尔型、整型、浮点型、数字型、列表、元组、字典、日期
所以类型转换主要就是在这些类型中进行的,其中又以字符型与其他类型转换为主。
1、字符串转整型
<span style="font-size:18px;">>>> a='123'
>>> b = int(a)
>>> b
123
</span>
2、整型转浮点型
<span style="font-size:18px;">>>> float(b)
123.0</span>
3、数字型转字符串
<span style="font-size:18px;">>>> str(b)
'123'</span>
4、字典转元组
<span style="font-size:18px;">>>> dict = {'name': 'Zara', 'age': 7, 'class': 'First'}
>>> tuple(dict)
('age', 'name', 'class')
>>> tuple(dict.values())
(7, 'Zara', 'First')</span>
5、字典转列表
<span style="font-size:18px;">>>> list(dict)
['age', 'name', 'class']</span>
6、元组转列表
<span style="font-size:18px;">>>> tup=(1, 2, 3, 4, 5)
>>> list(tup)
[1, 2, 3, 4, 5]</span>
7、元组转字符串
<span style="font-size:18px;">>>> tup.__str__()
'(1, 2, 3, 4, 5)'</span>
总结起来就是对应的类型一般都有转换的方法
转int类型——>> int()
str str()
list list()
tuple tuple()
float float()
至于时间类型的转化就要复杂一些了,需要导入time包,这里就先不展开了。