Python使用笔记001
一、Pycharm小技巧
1.pycharm创建项目时,选择Python环境,不使用默认的虚拟环境
2.如何在pycharm中查看python版本
Files--Settings--Project Interpreter
3.修改pycharm中的字体
进入File-->Settings-->Editor-->Front可以对字体,大小等进行选择
4.配置pycharm可使用Ctrl+鼠标滚轮切换字体大小
进入File-->Settings-->General 勾选Change front size (Zoom) with Ctrl+Mouse Wheel
5.pycharm配置git
进入VCS-->Get from Version Control 输入git地址
6.pycharm快捷键
Ctrl+D:快速复制一行代码
Ctrl + /:注释(取消注释)选择的行;
Ctrl + Alt + L:格式化代码(与QQ锁定热键冲突,关闭QQ的热键);
Shift + Enter:在下方新建行并移到新行行首;
Ctrl + Enter:在下方新建行但不移动光标;
二、Python知识点
1.定义变量
1 #""和''是一样的 2 #如果字符串中含有' 用"" 3 word1 = "let's go!" 4 5 #如果字符串中含有" 用'' 6 word2 = '王五长得很"帅气"' 7 8 #如果字符串中既包含"和',用'''''' 9 word3 = ''' let's go! 王五长得很"帅气" ''' 10 11 #变量名='''fdsfsfs''' 定义变量 12 #'''''' 注释,多行注释
2.条件判断
1 age = 35 2 if age<6: 3 print('儿童') 4 elif age>=6 and age<18: 5 print('未成年人') 6 elif age>= 18 and age<35: 7 print('青年') 8 elif age>=35 and age<55: 9 print('中年人') 10 else: 11 print('老年人')
3.循环
循环包括for和while
while循环必须指定结束条件,否则会死循环
break:立即结束循环,不管你剩余多少次没有循环
continue:结束本次循环,继续进行下一次循环
while对应的else作用:
while正常结束循环后,会执行else里面的代码
else不是必须写的
1 count = 0 2 while count < 10: 3 count = count + 1 #count+=1 4 print('创建了文件夹', count) 5 break
1 # while:需要一个计数器 2 count = 0 3 while count < 10: 4 count = count + 1 #count+=1 5 if count == 4: 6 continue 7 print('创建了文件夹', count)
for循环:不需要计数器,也不会死循环
1 for i in range(10): 2 if i == 4: 3 continue 4 print('创建文件夹',i) 5 #break 6 else:#只要循环不是break提前结束的,都会执行else 7 print('for对应的else')
循环小练习
1 #需求分析 2 #1.随机产生一个数字 3 #2.循环7次 4 #3.input输入猜的数字 5 #4.判断猜测结果,大于,等于,小于 6 #5.提示:游戏次数超限,游戏结束 7 8 import random 9 number = random.randint(1,100) 10 11 for i in range(7): 12 inNum = int(input('请输入你的参数:')) 13 if inNum < number: 14 print('你输入的参数偏小了') 15 elif inNum > number: 16 print('你输入的参数偏大了') 17 else: 18 print('恭喜你猜对了') 19 break 20 else: 21 print('游戏次数已用完!')
执行结果,如图所示:
4.字符串格式化
1 name = '王五' 2 time = '2020-04-18' 3 4 s = '欢迎' + name + '登录,今天时间为:' + time 5 print(s) 6 7 s2 = '欢迎%s登录,今天时间为:%s' % (name, time) 8 print(s2) 9 10 s3 = '欢迎%s登录' % name 11 print(s3) 12 13 # %s:字符串,后面随便跟什么类型的变量都可以 14 # %d:整数, 15 # %f:浮点型,默认是保留6位小数点 %.2f保留两位小数点 16 age = 18 17 score = 98.5 18 s4 = '姓名:%s,年龄:%d,成绩:%.2f' % (name, age, score) 19 print(s4) 20 21 s5 = '年龄是{age},成绩是{score}'.format(age=78, score=98.3) 22 print(s5)
5.列表
1 #int float str list 2 stus = ['张三','李四','王五','晏殊','苏大强']#定义一个列表 3 stus2 = []#定义一个空的列表 4 5 #新增 6 stus.append('施雪')#把元素加到列表的最后 7 print(stus) 8 stus.insert(1,'施雨') #指定位置加入,编号(下标,角标,索引)从0开始的 9 print(stus) 10 #修改 11 stus[0] = '张小三' 12 print(stus) 13 #删除 14 stus.pop()#默认删除的是最后一个元素 15 stus.pop(0)#删除指定的下标的元素 16 del stus[1]#删除 17 stus.clear()#清空列表 18 stus.remove('施雨1111')#删除,传的是元素,如果传的元素不存在会报错 19 print(stus) 20 21 22 #取值 23 print(stus) 24 print(stus[0]) 25 print(stus[3]) 26 27 28 #其他方法 29 l2 = [1,12,3,23,1,8,5,6,56,23] 30 print(l2.count(1))#统计元素出现的次数 31 print(l2.index(3))#找指定元素的索引 32 l2.sort()#对list进行排序,默认是升序排序 33 print(l2) 34 l2.sort(reverse=True)#降序 35 print(l2) 36 l3 = l2.copy()#复制一个list 37 print(l3) 38 l2.extend(stus)#将一个列表的合并到令一个列表 39 print(l2) 40 l2.reverse()#反转 41 print(l2) 42 43 44 45 #二维数组 46 infos = [ 47 ['name1','1111','beijing'], 48 ['name2','1234543','shanghai'], 49 ['name3','4324324','guangzhou'] 50 ] 51 52 print(infos[2][0]) 53 print(infos[-1][0])#list下标为-1代表取最后一个下标的值 54 print(infos[2][-1])
列表小练习
1 import datetime 2 3 today = datetime.datetime.today() 4 usernames = ['xiaohei', 'xiaobai', 'xiaoming'] 5 passwords = ['123456', '11111', '1'] 6 7 #登录 8 # username = input('username:') 9 # password = input('password:') 10 #欢迎 xxx登录,今天的是时间是xxx。 11 #登录错误次数过多,最多登录3次 12 #需求分析: 13 #1、循环3次 14 #2、输入账号和密码 15 #3、判断账号是否存在 in count 16 #4、根据账号取到账号的下标,然后用下标取到密码 17 #5、判断账号/密码是否正确 18 for i in range(3): 19 username = input('username:') 20 if usernames.count(username) > 0: # 判断账号是否存在,存在才可以登录 21 index = usernames.index(username) # 找到账号在列表中的索引 22 password = input('password:') 23 if password == passwords[index]: 24 print('恭喜%s登录成功,登录时间为:%s' % (username, today)) 25 break 26 else: 27 print('输入的密码不正确') 28 else: 29 print('输入的账号不存在') 30 else: 31 print('登录次数过多,最多登录3次')
执行结果如图所示:
6.字典
1 #字典key-value,字典是没有顺序的 2 #list取值,是挨个找,速度慢 3 #字典取值,是直接根据key来查找,速度很快 4 #stu_info = {}#定义一个空的字典 5 stu_info = {'name': 'xiaowu', 'phone': '18112341120', 'addr': 'guangzhou'} 6 7 8 #增加 9 stu_info['age'] = 18 10 stu_info.setdefault('qq','34324234232') 11 #两者的区别,stu_info['age'] = 18,如果key值已存在,则修改 12 #stu_info.setdefault('addr','34324234232') 如果key值已存在,则保持原样 13 #如果key值不存在,两者没有区别 14 print(stu_info) 15 16 #修改 17 stu_info['addr'] = 'beijing' 18 19 20 #删除,如果删除不存在的key值,会报KeyError: 'age111' 21 stu_info.pop('age') 22 del stu_info['qq'] 23 24 25 #取值 26 print(stu_info.get('name')) #取不存在的key值,返回None 27 print(stu_info.get('sex','女'))#get不到key值,会返回默认值,如果get到值,则默认值不起作用 28 print(stu_info['name'])#取不存在的key值,报KeyError: 'name1' 29 print(stu_info) 30 31 32 #其他方法 33 new_stu_info = stu_info.copy()#拷贝到别的字典 34 stu_info.clear()#清空字典 35 print(new_stu_info.keys())#获取字典的所有key值 36 print(new_stu_info.values())#获取字典的所有value值 37 print(new_stu_info.items())#把字典变成了一个二维数组 38 new_stu_info.update(name='xiaohei',money=5000)#可以修改字段值,也可以新增key-value 39 print(new_stu_info)
字典小练习
1 import datetime 2 today = datetime.datetime.today() 3 ''' 4 作业: 5 usernames = ['xiaohei','xiaobai','xiaoming'] 6 passwords = ['123456','11111','1'] 7 需要通过代码把上面的两个list转成下面的字典 8 user_info = {'xiaohei':'123456','xiaobai':'11111','xiaoming':'1','lcl':'123'} 9 1、注册 10 1、输入账号和密码、确认密码 11 2、要校验账号是否存在(从字典里面判断),存在的话,不能注册 12 3、校验两次输入的密码是否一致,如果一致,加入到字典中,提示注册成功 13 4、最多3次 14 5、要校验输入是否为空,为空也算一次错误,全是空格也算空 15 2、登录 16 1、输入账号和密码 17 2、要校验账号是否存在(从字典里面判断),不存在的话,不能登录 18 3、账号和密码一致就可以登录 19 4、最多3次 20 5、要校验输入是否为空,为空也算一次错误,全是空格也算空 21 ''' 22 usernames = ['xiaohei','xiaobai','xiaoming'] 23 passwords = ['123456','11111','1'] 24 user_info = {} 25 #将list里的值,转成字典user_info 26 for i in range(len(usernames)): 27 user_info.setdefault(usernames[i],passwords[i]) 28 29 print(user_info) 30 31 #注册 32 for j in range(3): 33 regUserName = input('请输入注册的账号:')#获取注册的账号 34 if regUserName.strip() == '':#输入的账号不能为空 35 print('输入的账号不能为空!') 36 else: 37 #print(user_info.get(regUserName)) 38 if user_info.get(regUserName) == None:#字典中不存在的账号,才可以注册 39 regPassword = input('请输入密码:') # 获取注册的账号密码 40 if regPassword.strip() == '': 41 print('输入的密码不能为空!!!') 42 else: 43 regCheckPass = input('请输入确认密码:') # 获取注册的账号确认密码 44 if regPassword == regCheckPass: 45 print('恭喜你,注册成功!!!') 46 user_info.setdefault(regUserName, regPassword)#将注册账号信息保存到字典user_info中 47 break 48 else: 49 print('两次输入的密码不一致!') 50 else:#字典中存在的账号,不给注册 51 print('注册的账号已存在') 52 else: 53 print('注册次数已使用完!!!') 54 55 56 #登录 57 for c in range(3): 58 loginUsername = input('请输入登录的账号:') 59 if loginUsername.strip() == '': 60 print('输入的登录账号不能为空') 61 else: 62 if user_info.get(loginUsername) != None:#判断输入的账号是否在字典中存在,存在才可以登录 63 loginPassword = input('请输入密码:') 64 if loginPassword.strip() == '': 65 print('输入的密码不能为空') 66 else: 67 if loginPassword == user_info.get(loginUsername):#判断账号和密码与字典表中的匹配,才可以登录成功 68 print('恭喜【%s】登录成功,登录时间为:%s'%(loginUsername,today)) 69 break 70 else: 71 print('输入的密码不匹配,登录失败') 72 else: 73 print('输入的账号不存在') 74 else: 75 print('登录的次数已用完!!!!')
执行结果如图所示: