Python基础(day2)

格式化输出

现有一练习需求,问用户的姓名、年龄、工作、爱好 ,然后打印成以下格式:

------------ info of wuli -----------
Name  : wuli
Age   : 22
job   : Engineer
Hobbie: code
------------- end -----------------

只需要把要打印的格式先准备好, 由于里面的 一些信息是需要用户输入的,你没办法预设知道,因此可以先放置个占位符,再把字符串里的占位符与外部的变量做个映射关系就好

name = input('请输入姓名:')
age = input('请输入年龄:')
job = input('请输入工作:')
hobbie = input('你的爱好:')

msg = '''------------ info of %s -----------
Name  : %s
Age   : %d
job   : %s
Hobbie: %s
------------- end -----------------''' %(name,name,int(age),job,hobbie)
print(msg)

%s就是代表字符串占位符,除此之外,还有%d,是数字占位符, 上面的age后面使用%d,就代表必须只能输入数字。

现在有这么一行代码:

msg = "我是%s,年龄%d,目前学习进度为2%"%('武力',18)
print(msg)

这样会报错的,因为在格式化输出里,你出现%默认为就是占位符的%,但是我想在上面一条语句中最后的2%就是表示2%而不是占位符.

msg = "我是%s,年龄%d,目前学习进度为2%%"%('武力',18)
print(msg)

这样就可以了,第一个%是对第二个%的转译,告诉Python解释器这只是一个单纯的%,而不是占位符。

while ... else ...

与其它语言else 一般只与if 搭配不同,在Python 中还有个while ...else 语句

while 后面的else 作用是指,当while 循环正常执行完,中间没有被break 中止的话,就会执行else后面的语句.

count = 0
while count <= 5 :
    count += 1
    print("Loop",count)

else:
    print("循环正常执行完啦")
print("-----out of while loop ------")

结果输出:

Loop 1
Loop 2
Loop 3
Loop 4
Loop 5
Loop 6
循环正常执行完啦
-----out of while loop ------

如果执行过程中被break啦,就不会执行else的语句了

count = 0
while count <= 5 :
    count += 1
    if count == 3:break
    print("Loop",count)

else:
    print("循环正常执行完啦")
print("-----out of while loop ------")

结果输出:

Loop 1
Loop 2
-----out of while loop ------

逻辑运算

逻辑运算符:and、or、not

在没有()的情况下not 优先级高于 and,and优先级高于or,即优先级关系为( )>not>and>or,同一优先级从左往右计算。

例如:判断如下逻辑语句的运算结果为True,Flase。

1,3>4 or 4<3 and 1==1
2,1 < 2 and 3 < 4 or 1>2 
3,2 > 1 and 3 < 4 or 4 > 5 and 2 < 1
4,1 > 2 and 3 < 4 or 4 > 5 and 2 > 1 or 9 < 8
5,1 > 1 and 3 < 4 or 4 > 5 and 2 > 1 and 9 > 8 or 7 < 6
6,not 2 > 1 and 3 < 4 or 4 > 5 and 2 > 1 and 9 > 8 or 7 < 6

 如果是数字之间的逻辑运算:

  x or y , x为真,值就是x,x为假,值是y;

       x and y, x为真,值是y,x为假,值是x。

例如,求下列逻辑语句的值:

8 or 4
0 and 3
0 or 4 and 3 or 7 or 9 and 6

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章