Python使用小技巧
一、Pycharm小技巧
1.pycharm创建项目时,选择Python环境,不使用默认的虚拟环境

2.修改pycharm中的字体
进入File-->Settings-->Editor-->Front可以对字体,大小等进行选择

3.配置pycharm可使用Ctrl+鼠标滚轮切换字体大小
进入File-->Settings-->General 勾选Change front size (Zoom) with Ctrl+Mouse Wheel

4.pycharm配置git
进入VCS-->Get from Version Control 输入git地址

5.pycharm快捷键
Ctrl+D:快速复制一行代码
Ctrl + /:注释(取消注释)选择的行;
Ctrl + Alt + L:格式化代码(与QQ锁定热键冲突,关闭QQ的热键);
Shift + Enter:在下方新建行并移到新行行首;
Ctrl + Enter:在下方新建行但不移动光标;
二、Python知识点
1.定义变量
#""和‘‘是一样的 #如果字符串中含有‘ 用"" word1 = "let‘s go!" #如果字符串中含有" 用‘‘ word2 = ‘王五长得很"帅气"‘ #如果字符串中既包含"和‘,用‘‘‘‘‘‘ word3 = ‘‘‘ let‘s go! 王五长得很"帅气" ‘‘‘ #变量名=‘‘‘fdsfsfs‘‘‘ 定义变量 #‘‘‘‘‘‘ 注释,多行注释
2.条件判断
age = 35
if age<6:
print(‘儿童‘)
elif age>=6 and age<18:
print(‘未成年人‘)
elif age>= 18 and age<35:
print(‘青年‘)
elif age>=35 and age<55:
print(‘中年人‘)
else:
print(‘老年人‘)3.循环
循环包括for和while
while循环必须指定结束条件,否则会死循环
break:立即结束循环,不管你剩余多少次没有循环
continue:结束本次循环,继续进行下一次循环
while对应的else作用:
while正常结束循环后,会执行else里面的代码
else不是必须写的
count = 0
while count < 10:
count = count + 1 #count+=1
print(‘创建了文件夹‘, count)
break# while:需要一个计数器
count = 0
while count < 10:
count = count + 1 #count+=1
if count == 4:
continue
print(‘创建了文件夹‘, count)for循环:不需要计数器,也不会死循环
for i in range(10):
if i == 4:
continue
print(‘创建文件夹‘,i)
#break
else:#只要循环不是break提前结束的,都会执行else
print(‘for对应的else‘)循环小练习
#需求分析
#1.随机产生一个数字
#2.循环7次
#3.input输入猜的数字
#4.判断猜测结果,大于,等于,小于
#5.提示:游戏次数超限,游戏结束
import random
number = random.randint(1,100)
for i in range(7):
inNum = int(input(‘请输入你的参数:‘))
if inNum < number:
print(‘你输入的参数偏小了‘)
elif inNum > number:
print(‘你输入的参数偏大了‘)
else:
print(‘恭喜你猜对了‘)
break
else:
print(‘游戏次数已用完!‘)执行结果,如图所示:

4.字符串格式化
name = ‘王五‘
time = ‘2020-04-18‘
s = ‘欢迎‘ + name + ‘登录,今天时间为:‘ + time
print(s)
s2 = ‘欢迎%s登录,今天时间为:%s‘ % (name, time)
print(s2)
s3 = ‘欢迎%s登录‘ % name
print(s3)
# %s:字符串,后面随便跟什么类型的变量都可以
# %d:整数,
# %f:浮点型,默认是保留6位小数点 %.2f保留两位小数点
age = 18
score = 98.5
s4 = ‘姓名:%s,年龄:%d,成绩:%.2f‘ % (name, age, score)
print(s4)
s5 = ‘年龄是{age},成绩是{score}‘.format(age=78, score=98.3)
print(s5)5.列表
#int float str list
stus = [‘张三‘,‘李四‘,‘王五‘,‘晏殊‘,‘苏大强‘]#定义一个列表
stus2 = []#定义一个空的列表
#新增
stus.append(‘施雪‘)#把元素加到列表的最后
print(stus)
stus.insert(1,‘施雨‘) #指定位置加入,编号(下标,角标,索引)从0开始的
print(stus)
#修改
stus[0] = ‘张小三‘
print(stus)
#删除
stus.pop()#默认删除的是最后一个元素
stus.pop(0)#删除指定的下标的元素
del stus[1]#删除
stus.clear()#清空列表
stus.remove(‘施雨1111‘)#删除,删除指定的元素
print(stus)
#取值
print(stus)
print(stus[0])
print(stus[3])
#其他方法
l2 = [1,12,3,23,1,8,5,6,56,23]
print(l2.count(1))#统计元素出现的次数
print(l2.index(3))#找指定元素的索引
l2.sort()#对list进行排序,默认是升序排序
print(l2)
l2.sort(reverse=True)#降序
print(l2)
l3 = l2.copy()#复制一个list
print(l3)
l2.extend(stus)#将一个列表的合并到令一个列表
print(l2)
l2.reverse()#反转
print(l2)
#二维数组
infos = [
[‘name1‘,‘1111‘,‘beijing‘],
[‘name2‘,‘1234543‘,‘shanghai‘],
[‘name3‘,‘4324324‘,‘guangzhou‘]
]
print(infos[2][0])
print(infos[-1][0])#list下标为-1代表取最后一个下标的值
print(infos[2][-1])列表小练习
import datetime
today = datetime.datetime.today()
usernames = [‘xiaohei‘, ‘xiaobai‘, ‘xiaoming‘]
passwords = [‘123456‘, ‘11111‘, ‘1‘]
#登录
# username = input(‘username:‘)
# password = input(‘password:‘)
#欢迎 xxx登录,今天的是时间是xxx。
#登录错误次数过多,最多登录3次
#需求分析:
#1、循环3次
#2、输入账号和密码
#3、判断账号是否存在 in count
#4、根据账号取到账号的下标,然后用下标取到密码
#5、判断账号/密码是否正确
for i in range(3):
username = input(‘username:‘)
if usernames.count(username) > 0: # 判断账号是否存在,存在才可以登录
index = usernames.index(username) # 找到账号在列表中的索引
password = input(‘password:‘)
if password == passwords[index]:
print(‘恭喜%s登录成功,登录时间为:%s‘ % (username, today))
break
else:
print(‘输入的密码不正确‘)
else:
print(‘输入的账号不存在‘)
else:
print(‘登录次数过多,最多登录3次‘)执行结果如图所示:

6.字典
#字典key-value,字典是没有顺序的
#list取值,是挨个找,速度慢
#字典取值,是直接根据key来查找,速度很快
#stu_info = {}#定义一个空的字典
stu_info = {‘name‘: ‘xiaowu‘, ‘phone‘: ‘18112341120‘, ‘addr‘: ‘guangzhou‘}
#增加
stu_info[‘age‘] = 18
stu_info.setdefault(‘qq‘,‘34324234232‘)
#两者的区别,stu_info[‘age‘] = 18,如果key值已存在,则修改
#stu_info.setdefault(‘addr‘,‘34324234232‘) 如果key值已存在,则保持原样
#如果key值不存在,两者没有区别
print(stu_info)
#修改
stu_info[‘addr‘] = ‘beijing‘
#删除,如果删除不存在的key值,会报KeyError: ‘age111‘
stu_info.pop(‘age‘)
del stu_info[‘qq‘]
#取值
print(stu_info.get(‘name‘)) #取不存在的key值,返回None
print(stu_info.get(‘sex‘,‘女‘))#get不到key值,会返回默认值,如果get到值,则默认值不起作用
print(stu_info[‘name‘])#取不存在的key值,报KeyError: ‘name1‘
print(stu_info)
#其他方法
new_stu_info = stu_info.copy()#拷贝到别的字典
stu_info.clear()#清空字典
print(new_stu_info.keys())#获取字典的所有key值
print(new_stu_info.values())#获取字典的所有value值
print(new_stu_info.items())#把字典变成了一个二维数组
new_stu_info.update(name=‘xiaohei‘,money=5000)#可以修改字段值,也可以新增key-value
print(new_stu_info)字典小练习
import datetime
today = datetime.datetime.today()
‘‘‘
作业:
usernames = [‘xiaohei‘,‘xiaobai‘,‘xiaoming‘]
passwords = [‘123456‘,‘11111‘,‘1‘]
需要通过代码把上面的两个list转成下面的字典
user_info = {‘xiaohei‘:‘123456‘,‘xiaobai‘:‘11111‘,‘xiaoming‘:‘1‘,‘lcl‘:‘123‘}
1、注册
1、输入账号和密码、确认密码
2、要校验账号是否存在(从字典里面判断),存在的话,不能注册
3、校验两次输入的密码是否一致,如果一致,加入到字典中,提示注册成功
4、最多3次
5、要校验输入是否为空,为空也算一次错误,全是空格也算空
2、登录
1、输入账号和密码
2、要校验账号是否存在(从字典里面判断),不存在的话,不能登录
3、账号和密码一致就可以登录
4、最多3次
5、要校验输入是否为空,为空也算一次错误,全是空格也算空
‘‘‘
usernames = [‘xiaohei‘,‘xiaobai‘,‘xiaoming‘]
passwords = [‘123456‘,‘11111‘,‘1‘]
user_info = {}
#将list里的值,转成字典user_info
for i in range(len(usernames)):
user_info.setdefault(usernames[i],passwords[i])
print(user_info)
#注册
for j in range(3):
regUserName = input(‘请输入注册的账号:‘)#获取注册的账号
if regUserName.strip() == ‘‘:#输入的账号不能为空
print(‘输入的账号不能为空!‘)
else:
#print(user_info.get(regUserName))
if user_info.get(regUserName) == None:#字典中不存在的账号,才可以注册
regPassword = input(‘请输入密码:‘) # 获取注册的账号密码
if regPassword.strip() == ‘‘:
print(‘输入的密码不能为空!!!‘)
else:
regCheckPass = input(‘请输入确认密码:‘) # 获取注册的账号确认密码
if regPassword == regCheckPass:
print(‘恭喜你,注册成功!!!‘)
user_info.setdefault(regUserName, regPassword)#将注册账号信息保存到字典user_info中
break
else:
print(‘两次输入的密码不一致!‘)
else:#字典中存在的账号,不给注册
print(‘注册的账号已存在‘)
else:
print(‘注册次数已使用完!!!‘)
#登录
for c in range(3):
loginUsername = input(‘请输入登录的账号:‘)
if loginUsername.strip() == ‘‘:
print(‘输入的登录账号不能为空‘)
else:
if user_info.get(loginUsername) != None:#判断输入的账号是否在字典中存在,存在才可以登录
loginPassword = input(‘请输入密码:‘)
if loginPassword.strip() == ‘‘:
print(‘输入的密码不能为空‘)
else:
if loginPassword == user_info.get(loginUsername):#判断账号和密码与字典表中的匹配,才可以登录成功
print(‘恭喜【%s】登录成功,登录时间为:%s‘%(loginUsername,today))
break
else:
print(‘输入的密码不匹配,登录失败‘)
else:
print(‘输入的账号不存在‘)
else:
print(‘登录的次数已用完!!!!‘)