Python使用小技巧

一、Pycharm小技巧

1.pycharm创建项目时,选择Python环境,不使用默认的虚拟环境

Python使用小技巧

2.修改pycharm中的字体

进入File-->Settings-->Editor-->Front可以对字体,大小等进行选择

Python使用小技巧

 3.配置pycharm可使用Ctrl+鼠标滚轮切换字体大小

进入File-->Settings-->General 勾选Change front size (Zoom) with Ctrl+Mouse Wheel

Python使用小技巧

4.pycharm配置git

进入VCS-->Get from Version Control 输入git地址

Python使用小技巧

 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(‘游戏次数已用完!‘)

执行结果,如图所示:

Python使用小技巧

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次‘)

执行结果如图所示:

Python使用小技巧

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(‘登录的次数已用完!!!!‘)

相关推荐