1. #在if语句嵌套中,需要特别注意的else和if的配对问题。python编译系统处理该问题的原则是:else 总是与同一语法层次中离他最近的尚未配对的if配对

  2. #例如:

  3. # x=10

  4. # y=85

  5. # if x>20 or x<-10:

  6. #     if y<100 or y>x:

  7. #         print("Good")

  8. # else:

  9. #         print("Bad")

  10. # num=int(input("请输入一个数字:"))

  11. # if num%2==0:

  12. #     if num%3==0:

  13. #         print("你输入的数字可以整除2和3")

  14. #     else:

  15. #         print("你输入的数字可以整除2,但是不能整除3")

  16. # else:

  17. #     if num%3==0:

  18. #         print("你输入的数字可以整除3,但是不能整除2")

  19. #     else:

  20. #         print("你输入的数字,不能整除2和3")

  21. #4.3.2真值测试;

  22. #python与cC++在处理真值和逻辑运算的方式上有所不同。在python中:

  23. #任何非0数字和非空对象都未真。

  24. #数字0、空对象(如空列表[],空字典{})、None都为假;

  25. #比较和相当测试返回true(真)或false(假)。

  26. #逻辑运算and和or,会返回参与运算的真或假的对象。

  27. #回顾:逻辑运算:not x:x非真即假,非假即真;

  28. #x and y:双真才为真;x or y:x 双假才为假;

  29. #1.比较和相等测试,总是返回true或false。

  30. print(2<5)

  31. print(2>5)

  32. print(2==5)

  33. #2 not 运算,not运算返回true或false。例如:

  34. print(not True,not False)

  35. print(not 0,not 1,not 2)

  36. print(not 'abc',not [1,2],not{'a':12})  #非空对象为真;

  37. print(not '',not[],not{}) #空的对象为假

  38. #3.and和or,python中的and和or运算符总是返回参与运算的对象,而不True和False。Python在计算and运算时,总是按从左到右的顺序计算。

  39. #在找到第一个计算为假的对象,返回该对象,即使右侧还有需要计算的对象,计算都结束。这种计算方式称为短路计算。

  40. print(2 and 0)

  41. print([] and 2)

  42. print(2 and {})

  43. print([]and{})

  44. print(2 and 5) #如果参与运算的对象都为真,则返回最后一个为真的对象。

  45. print(5 and 2)

  46. #or运算同样执行短路计算,在找到第一个为真的对象时,返回该对象,计算结束。

  47. print(0 or 2)

  48. print(2 or [])

  49. print(False or 5)

  50. print([]or{})

  51. print({}or[])

  52. print(False or 5)

  53. #3.3 if...elif 三元表达式

  54. x=5

  55. y=100

  56. if x>y:

  57. a=x

  58. else:

  59. a=y

  60. print(a)

  61. #该if语句,将x、y中较大值赋值给a,该语句可简化为如下的if...els三元表达式。

  62. #a=x if x>y else y

  63. #python还支持从列表中挑选对象,其基本格式如下:

  64. # a=[x,y][f]

  65. #f为假时,将x赋值给a,否则将y赋值给a。假前,真后

  66. a=5

  67. b=10

  68. c=[a,b][a>b]

  69. print(c)