三、运算符、格式化输出、流程控制语句。

一、运算符

1.1:算术运算

a=10

b=20

1.2:逻辑运算

1.2.1:优先级

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

判断下列逻辑语句的True,False。

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

1.2.2:and 和 or

 

  • 表达式从左至右运算,若 or 的左侧逻辑值为 True ,则短路 or 后所有的表达式(不管是 and 还是 or),直接输出 or 左侧表达式 。
  • 表达式从左至右运算,若 and 的左侧逻辑值为 False ,则短路其后所有and表达式,直到有or出现,输出and左侧表达式到or的左侧,参与接下来的逻辑运算。
  • 若 or 的左侧为 False ,或者 and 的左侧为 True 则不能使用短路逻辑。

 

  • 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

1.2.3:in和not in

判断子元素是否在原字符串(字典,列表,集合)中:

print('喜欢' in 'dkfljadklf喜欢hfjdkas')
print('a' in 'bcvd')
print('y' not in 'ofkjdslaf')

1.2.4:例子

 

a = 10
b = 20
 
if ( a and b ):
   print ("1 - 变量 a 和 b 都为 true")
else:
   print ("1 - 变量 a 和 b 有一个不为 true")
 
if ( a or b ):
   print ("2 - 变量 a 和 b 都为 true,或其中一个变量为 true")
else:
   print ("2 - 变量 a 和 b 都不为 true")
 
# 修改变量 a 的值
a = 0
if ( a and b ):
   print ("3 - 变量 a 和 b 都为 true")
else:
   print ("3 - 变量 a 和 b 有一个不为 true")
 
if ( a or b ):
   print ("4 - 变量 a 和 b 都为 true,或其中一个变量为 true")
else:
   print ("4 - 变量 a 和 b 都不为 true")
 
if not( a and b ):
   print ("5 - 变量 a 和 b 都为 false,或其中一个变量为 false")
else:
   print ("5 - 变量 a 和 b 都为 true")

#以上实例输出结果:
1 - 变量 a 和 b 都为 true
2 - 变量 a 和 b 都为 true,或其中一个变量为 true
3 - 变量 a 和 b 有一个不为 true
4 - 变量 a 和 b 都为 true,或其中一个变量为 true
5 - 变量 a 和 b 都为 false,或其中一个变量为 false

 

1.3:比较运算

1.4:赋值运算

二、if条件语句

2.1:语法

格式一:

  • if 条件:
  • 成功之后走这里

格式二:

  • if 条件:
  • 成功之后走这里
  • else:
  • 失败之后走这里

格式三:

  • if 条件:
  • 成功之后走这里
  • elif 条件:
  • 成功之后走这里
  • elif 条件:
  • 成功之后走这里
  • else:
  • 上述都失败

2.2:例子

#模拟10086查话费

 1 #!/user/bin/env python
 2 # -*- coding:utf-8 -*-
 3 
 4 msg = """
 5 欢迎致电10086
 6 1. 查询话费
 7 2. 查水表
 8 3. 人工服务
 9 """
10 
11 print(msg)
12 
13 choice = input('请选择您需要服务')
14 if choice == "1":
15     print("1.查询本机;2.查询他人手机;3.查询座机")
16     search_type = input('请输入要查询的类型:')
17     if search_type == '1':
18         print('查询本机')
19     elif search_type == '2':
20         print('查询他人手机')
21     elif search_type == '3':
22         print('查询座机')
23     else:
24         print('查询类型输入错误')
25 elif choice == "2":
26     print("查水表")
27 elif choice == "3":
28     print("人工服务")
29 else:
30     print("输入错误")

三、while循环语句

3.1:语法

  • while 条件:
  • 条件成立执行

3.2:例子

  例1:

  • while True:
  • print('钓鱼要钓刀鱼,刀鱼要到岛上钓')

  例2:

  • while 1==1 and 2==2:
  • print('钓鱼要钓刀鱼,刀鱼要到岛上钓')

  例3:

  • timer = 0
  • while timer < 3:
  • print('钓鱼要钓刀鱼,刀鱼要到岛上钓')
  • timer = timer + 1
  • print('完成')

  例4:打印1-100内所有奇数 

 1 #给start赋值等于1,while真,循环开始,temp的赋值等于start和2的余数,如果temp等于0(则余数等于0,start为奇数,否则为偶数)打印start,否则pass,什么都不执行,start的赋值等于start加1,直到赋值等于100时,while条件为False,循环不再成立!,打印偶数同理!
 2 
 3 #!/user/bin/env python
 4 # -*- coding:utf-8 -*-
 5 
 6 print("以下是1-100内所有的奇数:")
 7 start = 1
 8 while start < 101:
 9     temp = start % 2
10     if temp == 0:
11         pass
12     else:
13         print(start)
14     start = start + 1

  例5:打印1-100内所有偶数

 1 #!/user/bin/env python
 2 # -*- coding:utf-8 -*-
 3 
 4 print("以下是1-100内所有的偶数:")
 5 start = 1
 6 while start < 101:
 7     temp = start % 2
 8     if temp == 1:
 9         pass
10     else:
11         print(start)
12     start = start + 1

 

 

四、for循环语句

4.1:语法

4.2:例子

  例1:

 1 #!/usr/bin/python
 2 # -*- coding: UTF-8 -*-
 3 
 4 for letter in 'Python':
 5    print ("当前字母 :", letter)
 6 
 7 #输出结果为:
 8 当前字母 : P
 9 当前字母 : y
10 当前字母 : t
11 当前字母 : h
12 当前字母 : o
13 当前字母 : n

  例2:

 1 #!/user/bin/env python
 2 # -*- coding:utf-8 -*-
 3 fruits = ['banana', 'apple',  'mango']
 4 for fruit in fruits:
 5    print '当前水果 :', fruit
 6  
 7 print "Good bye!"
 8 
 9 #输出结果为:
10 当前水果 : banana
11 当前水果 : apple
12 当前水果 : mango
13 Good bye!

  例3:

模拟用户登录三次机会

 1 #!/user/bin/env python
 2 # -*- coding:utf-8 -*-
 3 
 4 user_list = [
 5     {'username': 'alex', 'password': '123'},
 6     {'username': 'eric', 'password': '123'},
 7     {'username': 'tony', 'password': '123'},
 8     {'username': 'jack', 'password': '123'},
 9 ]
10 
11 i = 0
12 flag = False
13 while i < 3:
14     user = input("请输入用户名:")
15     pwd = input("请输入密码:")
16 
17     for item in user_list:
18         if item['username'] == user and item['password'] == pwd:
19             flag = True
20             break
21         else:
22             pass
23 
24     if flag:
25         print("登录成功")
26         break
27     else:
28         print("登录失败")
29     i = i + 1

   例4:

计算1-2+3-4+5 ... 99的所有数的和

#!/user/bin/env python
# -*- coding:utf-8 -*-

print("以下是1-2+3-4+5 ... 99的所有数的和")
num = 0
for i in range(1,100):
    if i % 2 == 0:
        num = num - i
    else:
        num = num + i
print(num)

 五、格式化输出

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

------------ info of Alex Li -----------
Name  : Alex Li
Age   : 22
job   : Teacher
Hobbie: girl
------------- end -----------------

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

name = input("Name:")
age = input("Age:")
job = input("Job:")
hobbie = input("Hobbie:")

info = '''
------------ info of %s ----------- #这里的每个%s就是一个占位符,本行的代表 后面拓号里的 name 
Name  : %s  #代表name 
Age   : %s  #代表age  
job   : %s  #代表job 
Hobbie: %s  #代表hobbie 
------------- end ----------------- #这行的%号就是把前面的字符串与拓号后面的变量关联起来 
''' %(name,name,age,job,hobbie) print(info)

%s就是代表字符串占位符,除此之外,还有%d,是数字占位符, 如果把上面的age后面的换成%d,就代表你必须只能输入数字

name = input("Name:")
age = input("Age:")
print(type(age))

#执行输出是:
Name:Alex
Age:22
<class 'str'>
Job:IT

注意:input接收的所有输入默认都是字符串格式!

1把str转成int。

age = int(  input("Age:")  )
print(type(age))

相反,也能把字符串转成数字,str( yourStr )

问题:现在有这么行代码
msg = "我是%s,年龄%d,目前学习进度为80%"%('金鑫',18) print(msg)
这样会报错的,因为在格式化输出里,你出现%默认为就是占位符的%,但是我想在上面一条语句中最后的80%就是表示80%而不是占位符,怎么办?
msg = "我是%s,年龄%d,目前学习进度为80%%"%('金鑫',18)
print(msg)
这样就可以了,第一个%是对第二个%的转译,告诉Python解释器这只是一个单纯的%,而不是占位符。
posted @ 2018-05-08 10:44  HaydenGuo  阅读(465)  评论(0)    收藏  举报