python学习笔记01:条件判断及循环


1.变量

1)什么是变量

变量是用来存储数据的。

2)变量赋值

在 python 中,每个变量在使用前都必须赋值,变量赋值以后,该变量才会被创建。

变量名 = 值

注意:Python 中的变量赋值不需要类型声明。为了保证代码格式, = 的左右两边该各保留一个空格。(加上引号就是字符串类型

1 name = '小明'#字符串(string)类型
2 age = 18#整数(int)类型
3 score = 98.8#浮点(float)类型
4 l1 = ['1', '2', '3']#列表(list)类型
5 dic = {'name': '小黑', 'phone': '123'}#字典(dictionary)类型
6 tup = (1, 2, 3)#元组(tuple)类型
7 s = {1, 2, 3, 4, 5, 5, 6, 7}#集合(set)类型

3)变量的命名规则

   a)字符串加引号,正常双引号和单引号没区别,数字可以不加引号

   b)不能以数字开头(python的确可以用中文当变量名,但是没有这么干的)

   c)字符串可以用单引号、双引号、三引号表示(小数和整数可以不加引号,加了引号都是字符串),python中定义变量的时候字符串都用引号括起来,单引号和双引号没区别。

注意:如果字符串里面有单引号,那么外面就用双引号(或里面有双引号,外面就用单引号)。如果里面既有单引号又有双引号,那么外面就用三引号。

(三引号也可以多行注释代码;单行注释,使用#)

1 word = '''Hello,I’m LiLei,你好”帅气“'''#里面有单引号和双引号,外面用三引号

   d)不能与关键字重名

注意:关键字就是在python内部已经使用的标识符,关键字具有特殊的功能和含义,开发者不允许定义和关键字相同的名字的标示符。通过以下命令可以查看python中的关键字,import关键字可以导入一个工具包,在python中不同的工具包,提供有不同的工具。

 以下关键字不能声明为变量:['False', 'None', 'True', 'and', 'as', 'assert', 'async', 'await', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']

4)变量命名习惯

如果变量名需要由两个或多个单词组成,可以按照以下方式命名(python中常用):单词与单词之间使用_下划线连接,例如:first_name

驼峰命名法(其他语言常用的命名法):当变量名是由两个或多个单词组成,还可以利用驼峰命令法来命名 。

小驼峰命名法:第一个单词以小写字母开始,后续单词的首字母大写 ,例如:firstName lastName。

大驼峰命名法:每一个单词的首字母都采用大写字母,例如:FirstName LastName。

建议:驼峰命名法, 大驼峰给类起名,小驼峰给类以外的变量命名。

2.条件判断(if)

python中条件判断使用  if...else(如果怎样,否则就怎样)来判断,多分支的话使用 if...elif...else (“:”标志着这行代码结束;只要有“:”,第二行必须缩进)

判断符号:>大于          < 小于          >=大于等于          <=小于等于          !=不等于          ==等于

 1 #例:儿童<=16,6<青少年<18, ,18<=青年人<=40,40<中年人<=60,老人<60
 2 age = int(input('输入年龄:'))#因为input接收的是一个字符串,所以需要用int函数强制类型转换
 3 if age <= 6:#如果年龄小于等于6岁
 4     print('儿童')
 5 elif 6 < age < 18:#如果年龄大于6岁小于18岁
 6     print('青少年')
 7 elif 18 <= age <= 40:#如果年龄大于等于18岁小于等于40岁
 8     print('青年人')
 9 elif 40 < age <= 60:#如果年龄大于40岁小于等于60岁
10     print('中年人')
11 else:#如果年龄大于60岁
12     print('老年人')

注:

1 # 可以单独写if,不可以单独写else
2 age = 36
3 if age > 35:
4     print('欢迎')

非空即真,非零即真

# 空的情况
# s = ''#false
# l = []#false
# d = {}#false
# t = ()#false
# se = set()#false
# num =0#false

# 非空的情况
# num1 = 1#true
# l1 = ['']#true


# 非空即真
choice = input('请输入:')
if choice:  #if choice !=''可以简化代码
    print('')
else:
    print('')


# 非0即真
num = int(input('请输入:'))
if num: #if num != 0
    print('')
else:
    print('')

 andor的使用:

 1 # and并且、和
 2 age = int(input('请输入年龄:'))
 3 if age > 6 and age < 18:
 4     print('未成年人')
 5 else:
 6     print('成年人')
 7 
 8 # or或者
 9 sex = input('请输入性别:')
10 if sex == '' or sex == '':# ==是等于
11     print('性别正常')
12 else:
13     print('无法判断性别')

innot in 的使用:

 1 # in在里面
 2 title = input('请输入标题:')
 3 if 'sb' in title or 'SB' in title:
 4     print('标题不合法')
 5 else:
 6     print('标题合法')
 7 
 8 # not in不在里面
 9 title=input('请输入标题:')
10 if 'sb' not in title and 'SB' not in title:
11     print('标题合法')
12 else:
13     print('标题不合法')

条件判断小练习:

 1 # 例:分数在0-100之间,90<=优秀<=100,80<=良好<90,60<=及格>80,0<不及格<60,分数如果不在0-100之间,提示输入分数不合法
 2 score = input('请输入分数:')#input接收到的,全部是string类型
 3 print('score类型:', type(score))#查看类型
 4 score = int(score)#强制类型转换,转换int类型
 5 print('score类型:', type(score))
 6 if 90 <= score <= 100:
 7     print('优秀')
 8 elif 80 <= score < 90:
 9     print('良好')
10 elif 60 <= score < 80:
11     print('及格')
12 elif 60 < score < 0:
13     print('不及格')
14 else:
15     print('输入分数不合法')

类型错误问题,如下图:

input 接收到的全部都是string 类型,需要类型转换

解决方案: score = int(score)#类型转换

3.循环(for 和 while)

python中有两种循环,while和for,两种循环的区别是,while循环之前,先判断一次,如果满足条件的话,再循环,for循环的时候必须有一个可迭代的对象,才能循环。

1)while循环

1 # while循环
2 count = 0#while前提需要一个计数器
3 while count < 10:#必须指定结束条件,否则会死循环
4     print('创建文件夹', count)
5     count = count+1#每次循环完,count的值加1,如果不加的话,条件就一直为真,就成死循环

注意:

         count+=1 等价于count=count+1 ;

         count-=1 等价于count=count-1 ;

         count*=1 等价于count=count*1 ;

         count/=1 等价于count=count/1。

breakcontinue的使用:

 1 # break和continue在循环里用
 2 
 3 # break:立即结束循环。适用场景:输密码成功登录,结束循环。
 4 count = 0
 5 while count < 10:
 6     print('创建文件夹', count)
 7     count = count+1
 8     break
 9 
10 # continue:结束本次循环,继续进行下一次循环
11 count = 0
12 while count < 10:
13     count = count+1
14     if count == 4:
15         continue
16     print('创建文件夹', count)

while和else搭配使用:

1 # while和else搭配
2 count = 0
3 while count < 10:
4     count = count+1
5     if count == 4:
6         continue
7     print('创建文件夹', count)
8 else:#while正常结束循环后,会执行else里面的代码,else不是必须写(通过break结束循环,就不会执行else)
9     print('while对应的else')

2)for循环

注意:for循环不能写死循环,while可以写死循环

1 # for循环
2 for i in range(10):
3     print('创建文件夹', i)

 for和else搭配使用:

1 #for和else搭配
2 for i in range(10):
3     if i == 4:
4         continue
5     print('创建文件夹', i)
6 else:#只要循环不是被break提前结束的,就会执行else里的代码
7     print('for对应的else')

循环小练习:

 1 # 猜数字游戏:最多7次机会,1-100之间,如果猜对了提示“恭喜你猜对了,游戏结束”;如果猜错了,提示玩家猜大了或猜小了
 2 # 分析:
 3 # 1、随机产生1个数字
 4 # 2、循环7次
 5 # 3、input输入猜的数字
 6 # 4、判断猜测结果,大于、等于、还是小于
 7 # 5、游戏次数超限,游戏结束
 8 
 9 # 方法一:for循环
10 import random
11 number = random.randint(1, 100)
12 print(number)
13 for i in range(7):
14     guess = input('请输入你猜的数字:')
15     guess = int(guess)
16     if guess == number:
17         print('恭喜你猜对了,结果是', guess)
18         break
19     elif guess > number:
20         print('猜大了')
21     else:
22         print('猜小了')
23 else:
24     print('游戏次数超限,游戏结束')
25 
26 
27 # 方法二:while循环
28 import random
29 number = random.randint(1, 100)
30 count = 0
31 while count < 7:
32     count += 1
33     guess = input('请输入你猜的数字:')
34     guess = int(guess)
35     if guess == number:
36         print('恭喜你猜对了,结果是', guess)
37         break
38     elif guess > number:
39         print('猜大了')
40     else:
41         print('猜小了')
42 else:
43     print('游戏次数超限,游戏结束')

3)循环列表和字典

 1 usernames = ['小黑', '小贝', '小白']
 2 passwords = ['123456', '1111', '1']
 3 print(len(usernames))  #列表里面总共有几个元素
 4 
 5 d = {'xiaohei': '123456', 'xiaobai': '11111', 'xiaoming': '1'}
 6 print(len(d))  #字典里面总共有几个元素
 7 
 8 # 循环list
 9 for username in usernames:  #直接循环list就是取list里面的每个元素
10     print(username)
11 
12 # 循环多维数组
13 l = [
14      ['xiaohei','12345','110'],
15      ['xiaobai','123','120'],
16      ['xiaoming','111','119']
17 ]
18 for a,b,c in l:
19     print(a,b,c)
20 
21 # 循环字典
22 d = {'xiaohei': '123456', 'xiaobai': '11111', 'xiaoming': '1'}
23 # 方法一:高效
24 for key in d:  #循环字典的key
25     value = d.get(key)  #通过key取value
26     print('%s->%s' % (key, value))
27 
28 # 方法二:效率不高
29 for key,value in d.items():  #.items()先把字典转换成二维数组,所以效率不高
30     print('%s->%s' % (key, value))
31 # print(d.items())
32 
33 
34 # 通过循环把列表转换成字典
35 dic = {}  #定义空字典,存放数据
36 i = 0#定义计数器
37 while i < len(usernames):  #计算下标来取元素
38     username = usernames[i]
39     passwd = passwords[i]
40     dic[username] = passwd
41     i+=1
42 print(dic)

打印结果如下:

小黑
小贝
小白

xiaohei 12345 110
xiaobai 123 120
xiaoming 111 119

xiaohei->123456
xiaobai->11111
xiaoming->1

xiaohei->123456
xiaobai->11111
xiaoming->1

{'小黑': '123456', '小贝': '1111', '小白': '1'}