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('假')
and和or的使用:
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('无法判断性别')
in 和 not 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。
break和continue的使用:
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'}