作业描述
1.获取用户输入并打印成下列格式
------------ info of Jason -----------
Name : Jason
Age : 18
Sex : male
Job : Teacher
---------------- end -----------------
2.准备说出下列变量名v绑定的结果
v1 = 1 or 3
v2 = 1 and 3
v3 = 0 and 2 and 1
v4 = 0 and 2 or 1
v5 = 0 and 2 or 1 or 4
v6 = 0 or False and 1
作业一:
name = input('请输入你的名字:')
age = input('请输入你的年龄:')
sex = input('输入性别:')
job = input('输入工作:')
print('---------- info of %s ----------' % name )
print('name : %s' % name)
print('age : %s' % age)
print('sex : %s' % sex)
print('job : %s' % job)
print('---------- end ----------')
name = input('请输入你的名字:')
age = input('请输入你的年龄:')
sex = input('输入性别:')
job = input('输入工作:')
info = """\
------info fo %s------
name : %s
age :%s
sex : %s
job : %s
---------end----------\
""" # '\' 取消多行字符串中的换行符
print(info % (name, name, age, sex, job))
## 作业二:
v1 = 1 or 3 # 1
v2 = 1 and 3 # 3
v3 = 0 and 2 and 1 # 0
v4 = 0 and 2 or 1 # 1
v5 = 0 and 2 or 1 or 4 # 1
v6 = 0 or False and 1 # false
0 and 2 or 1: # 1
先看 0 and 2:
and左边的bool值是false,直接输出左边的值,也就是0。
相当于:
0 and 2 or 1 ———变成了———> 0 or 1
or左边的bool值是false,所以直接输出右边的值,也就是1
补充:
0 or False: # False
0 and False: # 0
print(1 and '') # ''
print(1 and {}) # {}
print(type(1 and '')) # <class 'str'>
print(type(1 and {})) # <class 'dict'>
遇到的问题
"""表达式的情况"""
a = 4
if a == 2 or 3 # 这种写法是错的
print(a)
先看or左边 ,a == 2是个表达式,运算结果是false,false or 3 的结果是 3, 3的bool值是True,
所以这个if语句肯定会执行 相当于if True:
if a == 2 or a == 3 # 应该写成这样
print(a) # 仅仅当 a = 2 或 a = 3时,输出 a