【Python】素人万字总结,PyCharm2022.2专业版提升开发效率基本设置及常用快捷键(超实用)& Python基本知识一一CSDN21天学习挑战赛



本系列文章为参与【Python】CSDN21天学习挑战赛,成为更好的自己,根据自身的学习进度并记录自己的学习过程。我也是Python纯小白,和大家一起学习,保持热爱学习的好习惯😁

活动地址:CSDN21天学习挑战赛


PyCharm基本使用

常用快捷键

PyCharm快捷键可以在File -> Settings -> Keymap中设置
以下标红的是我觉得有用的,而且平时开发过程中也经常使用到的

快捷键描述
Ctrl + Alt + L格式化代码
Crtl + Shift + U大/小写转换
Crtl + /注释/取消注释
End将光标移动到行尾
Home将光标移动到行首
Shift + End截取光标当前位置并移动到行尾
Shift + Home截取光标当前位置并移动到行首
Ctrl + Z撤销
Ctrl + Y反撤销(如果有提示,选择Redo)
Shift + F10快捷运行代码
Shift + F9快捷调试代码
F8跨步执行(调试时)
F7单步执行(调试时)
Alt + Shift + F7进入我的代码(调试时)
Shift + F8跳出(调试时)
Alt + F9运行到光标(调试时)
Ctrl + Enter提示修正黄色波浪号警告的代码
Ctrl + -折叠代码(Ctrl和-号)
Ctrl + +展开代码(Ctrl和+号)
Shift + F6选中文件,重命名
Ctrl + N查看类被引用的地方
Ctrl + F查找内容
Ctrl + Shift + F全局查找
Ctrl + R替换内容
Ctrl + Shift + R全局替换
F2快速跳转报错的代码
Ctrl + Shift + I查看源码
Ctrl + Q查看类,函数,模块,库...描述
Ctrl + B / Ctrl + 鼠标左键进入类,函数,模块,库...
Ctrl + Shift + F12最大化编辑代码窗口
Ctrl + J快捷添加代码提示
F11定义一个书签
Shift + F11查看所有书签
Ctrl + F12查看当前文件中的所有函数
Tab向右缩进一个制表位(默认4个空格)
Shift + Tab向左缩进一个制表位(默认4个空格)
Ctrl + {将光标移动到方法体或循环的开始
Ctrl + }将光标移动到方法体或循环的结束
Ctrl + Alt + Enter在上方插入新行
Shift + Enter在下方插入新行
Alt + Shift + 上、下键上下移动选中代码
Ctrl + Shift + 上、下键上下移动选中方法体
Ctrl + D快速复制一行并在下面粘贴
Crtl + Shift + J多行代码合并为一行
Crtl + Alt + T包装代码
Ctrl + E查看最近编辑的文件
Ctrl + Tab切换视图
Ctrl + Shift + V查看历史粘贴复制记录
Alt + Shift + C查看历史修改记录

设置代码样式

首先默认样式,我个人是不太习惯的,注释不显眼,关键字也不够显眼
在这里插入图片描述
下面我们选择File->Settings
在这里插入图片描述
接着选择Editor->Color Scheme,点击Scheme后面的下拉框,选择自己喜欢风格,点击OK,我习惯的是最后一个
在这里插入图片描述
最后,发现都高亮显示了,这才舒服
在这里插入图片描述
当然也可以修改其他细节处的样式,可以具体到注释变量字符串关键字等…
请添加图片描述


设置代码自动换行

假如我们有很长的一个url地址,如果这样,我们要一直去操作滚动条,拉来拉去,很不方便,都看不到后面有什么了,我们可以设置代码自动换行
请添加图片描述
选择File->Settings->Editor,点击General,在Soft-wrap these files后面添加:;*.py,点击OK,注意有分号的
请添加图片描述
再看代码,就已经自动换行了
请添加图片描述


设置控制台打印自动换行

如果我们打印发现控制台也看不见后面的,那么控制台也设置下自动换行
请添加图片描述
选择File->Settings->Editor->General->Console,勾选上Use soft wraps in console,点击OK
请添加图片描述
再次执行代码,我们可以看到控制台也成功换行了
请添加图片描述


设置文件模板

我们如果要实现比如每个文件加上作者信息创建时间文件描述等…,是不是每次创建文件就要复制一下,然后再修改,这样也不省心,强大的PyCharm提供了文件模板功能,即配置好文件内容后,每次创建文件,就会以模板中的内容来创建文件
下面代码一定要添加在源文件的第一行
# -*- coding: utf-8 -*-
具体操作选择File->Settings->Editor->File and Code Templates,点击Python Script,右边就可以填写相应的模板信息了;可以看到中间有很多文件,都可以修改模板内容的
请添加图片描述
创建新文件
请添加图片描述
输入test,按Enter
请添加图片描述
就会发现,文件自动带有配置的信息了
请添加图片描述


终端命令

pip相关命令

  • 更新pip(两种都行)
pip install --upgrade pip
Python -m pip install --upgrade pip

如果在执行命令提示更新失败或是警告提示“ModuleNotFoundError: No module named ‘pip’ ”错误;则执行以下命令

  • 管理员打开cmd执行,安装标准库提供的一个pip副本
Python -m ensurepip

软件包相关命令

  • 安装软件包
pip install requests
  • 安装软件包,并指定版本
pip install requests==2.28.1
  • 卸载软件包
pip uninstall requests
  • 查看指定的软件包
pip show requests
  • 查看所有已安装的软件包
pip list
  • 更新指定软件包,最新版本
pip install requests --upgrade
  • 更新指定软件包,指定版本
pip install requests --upgrade xxxxx
  • 获取所有已安装包中,是否有可更新的包,其中format有三个选择可选columns, freeze, json;columns行和列;freeze只打印名称和版本jsonjson格式
pip list --outdated --format=columns
  • 更新所有已安装包,需要先导入包pip-review
pip install pip-review
pip-review --local --interactive
  • 使用指定镜像源进行安装包:pip install 模块名 -i 镜像源地址
pip install requests -i http://pypi.douban.com/simple
  • 永久设置下载镜像源
pip config set global.index-url 镜像源地址

常用的国内镜像源地址

也可以使用Pycharm自带库管理器,选择File->Settings->Project->Python Interpreter,点击+号
请添加图片描述
搜索自己想要的包,点击Install Package即可
请添加图片描述


代码实现换源更新所有包

# 换豆瓣源更新所有已安装的包
import os
comand_list = 'pip list'
comand_install = 'pip install -U {} -i https://pypi.douban.com/simple --trusted-host pypi.douban.com'
data = os.popen(comand_list)
data_list = data.readlines()  # 读取命令行的输出到一个列表

# 删除表头信息
del data_list[0]
for line in data_list:
    package = line.split(' ')[0]  # 获取包名
    print("正在检查更新包:" + package)
    os.system(comand_install.format(package))

Python基础知识

项目结构

  • package/
    • __init__.py
    • subpackage1/
      • __init__.py
      • moduleA.py
      • moduleB.py
    • subpackage2/
      • __init__.py
      • moduleA.py
      • moduleB.py

项目文件

__init__.py

将文件夹变为Python包,3.3之前版本必要,3.3之后不必要,但还是推荐使用。不管是导入包还是导入包里面的模块,都会执行__init__.py文件中的代码

  • 对外提供函数(类似接口),引用函数更加简单,不需要知道包中有哪些文件,函数在哪个文件中,只对外提供函数
  • 初始化操作:只要存在__init__.py文件,运行包下面的任何代码都会执行该文件中的代码
  • 公共方法:可以将一些公共函数封装在该文件中,方便调用

*.py

py文件是python的脚本文件。

Python在执行时,首先会将.py文件中的源代码编译成Python的byte code(字节码),然后再由Python Virtual Machine(Python虚拟机)来执行这些编译好的byte code。这种机制的基本思想跟Java,.NET是一致的。

*.ini

  • ini配置文件,这类配置文件需要Python使用内置configparser库来使用,它可以实现配置文件的写入、更新、删除、读取等操作,建议使用这种方式
  • 编码格式要是utf-8,字符串的表示不要加引号,否则引号也会被解析出来
  • 可以在配置文件中加入注释 ,但是注释必须是单独的一行,且以 “#” 开头。只是每次运行时不会读入注释,只要运行一次,写入文件后,所有的注释都会消失
# []表示section节点,该节点下是option,即键=值
[conf1]
key1 = value1
key2 = value2
key3 = value3

[conf2]
key1 = value1
key2 = value2

*.json

使用python内置的 json库进行解析json文件。

  • json中字符串类型必须要加引号,数值类型
{
    "conf1": {
        "key1": "value1",
        "key2": "value2",
        "key3": "value3"
    },
    "conf2":{
        "key1" : "value1",
        "key2" : "value2",
        "key3": "value3"
    }
}

*.xml

  • XML 指可扩展标记语言(eXtensible Markup Language),它被设计用来传输和存储数据

  • 是一套定义语义标记的规则,这些标记将文档分成许多部件并对这些部件加以标识

  • 它也是元标记语言,即定义了用于定义其他与特定领域有关的、语义的、结构化的标记语言的句法语言

<?xml version="1.0" encoding="utf-8"?>
<Root>
	<node date="2022/8/6">
		<to>CSDN</to>
		<from>xdg</from>
		<msg>love</msg>
	</node>
</Root>

编码

因为Python默认是以ASCII编码方式的,所以如果代码中包含了中文或者其他语言,如果以UTF-8格式保存了;可能也依然会乱码,这种情况加上一行描述就行了此语句一定要添加在源代码的第一行

# -*- coding: utf-8 -*-

可以将这一行设置为模板,以后每一次创建*.py文件都会加上这一行,具体设置参考PyCharm模板设置


缩进

Python 最具特色的就是使用缩进来表示代码块。缩进的空格数是可变的,但是同一个代码块的语句必须包含相同的缩进空格数
而且必须严格遵守缩进规范,不规范的缩进会编译报错


基础关键字

import keyword

print(keyword.kwlist) 

结果

['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']

变量类型

  • 整型:int
    32位机器上范围:-231~231-1,即-2147483648~2147483647
    64位机器上范围:-263~263-1,即-9223372036854775808~9223372036854775807
    如果超过范围可以使用长整型,必须在结尾加上l字母,为了避免与1混淆,建议用大写L
  • 字符串:str
  • 布尔:bool,TRUEFALSE
  • 浮点:float
  • 列表:list,[]
  • 元组:tuple,()
  • 字典:dict,{}
  • 集合:set,{}

列表&元祖&字典&集合区别

类型索引取值重复切片相加增删改
列表支持支持支持支持支持
元祖支持支持支持支持不支持
字典支持键值对索引取值key重复会被重写不支持不支持支持
集合不支持无序性和唯一性不支持不支持支持

类型判断

Python可以用type函数来检查一个变量的类型
例:

result = 1
print(type(result))
# 结果:<class 'int'>

result = "xdg"
print(type(result))
# 结果:<class 'str'>

result = True
print(result)
# 结果:True
print(type(result))
# 结果:<class 'bool'>

result = 1.2
print(result)
# 结果:1.2
print(type(result))
# 结果:<class 'float'>

result = [1, "xdg", 2, "xdg2", "xdg", 1]
print(result)
# 结果:[1, 'xdg', 2, 'xdg2', 'xdg', 1]
print(type(result))
# 结果:<class 'list'>

result = (1, 'xdg', 2, 'xdg2', 'xdg', 1)
print(result)
# 结果:(1, 'xdg', 2, 'xdg2', 'xdg', 1)
print(type(result))
# 结果:<class 'tuple'>

result = {'xdg': "1", "xdg2": '2'}
print(result)
# 结果:{'xdg': '1', 'xdg2': '2'}
print(type(result))
# 结果:<class 'dict'>

result = {1, 'xdg', 2, 'xdg2', 'xdg', 1}
print(result)
# 结果:{1, 2, 'xdg2', 'xdg'}
print(type(result))
# 结果:<class 'set'>

字符串

  • Python 中单引号和双引号使用完全相同,但单引号和双引号不能匹配。
  • 使用三对引号(‘’'或"“”)可以囊括一个多行字符串。
  • python也使用 \作为转义字符
  • 自然字符串, 通过在字符串前加 r 或 R。 如 r"this is a line with \n" 则\n会显示,而不是换行。
  • Python 允许处理 unicode 字符串,加前缀 u 或 U, 如 u"this is an unicode string"。
  • 字符串可以用 + 运算符连接在一起,用 * 运算符重复。
  • Python 中的字符串有两种索引方式,从左往右以 0 开始,从右往左以 -1 开始。
  • Python 没有单独的字符类型,一个字符就是长度为 1 的字符串。
  • 字符串的截取的语法格式如下:变量 [头下标: 尾下标: 步长]
表达式描述
\n换行符,换行print(‘hello\nworld!’) # 结果:hello # world!(world!换行)
\t水平制表符,类似Tab键,横向相隔四个字符print(‘hello\tworld!’) # 结果:hello world!
\r回车符,类似Enter键,回车效果print(‘hello\rworld!’) # 结果:world!
\v垂直制表符,纵向相隔四个字符
\f换页符
end=‘’不换行print(‘hello’, end=" ") print(‘world!’) # 结果:hello world!

例:

str1 = 'hello world!'

print(str1)  # 输出字符串
# 结果:hello world!

print(str1[0:-1])  # 输出第一个到倒数第二个的所有字符
# 结果:hello world

print(str1[0])  # 输出字符串第一个字符
# 结果:h

print(str1[2:5])  # 输出从第三个开始到第五个的字符
# 结果:llo

print(str1[2:])  # 输出从第三个开始后的所有字符
# 结果:llo world!

print(str1[1:5:2])  # 输出从第二个开始到第五个且每隔两个的字符
# 结果:el

print(str1 * 2)  # 输出字符串两次
# 结果:hello world!hello world!

print(str1 + '你好世界')  # 连接字符串
# 结果:hello world!你好世界

print('hello'+'world!')  # 连接字符串
# 结果:helloworld!

print('\n')
# 结果:输出空行

print("hello\nworld!")  # 使用反斜杠(\)+n转义特殊字符
# 结果:hello
world!

print(r"hello\nworld!")  # 在字符串前面添加一个 r,表示原始字符串,不会发生转义
# 结果:hello\nworld!

print('hello\tnworld!')  # \t表示
# 结果:hello	nworld!

import 与 from…import

在 Python 用 import 或者 from…import 来导入相应的模块。
将整个模块导入,格式为:import 模块名称
从某个模块中导入某个函数,格式为:from 模块名称 import 函数名称
从某个模块中导入多个函数,格式为:from 模块名称 import 函数1, 函数2, 函数3
将某个模块中的全部函数导入,格式为:from 模块名称 import *

例:导入time模块

import time
print(time.time())
print(time.sleep(1))

导入time模块的time, sleep成员

from time import time, sleep
# 直接使用函数
print(time())
print(sleep(1))

总结

以上就是关于PyCharm的基本使用和Python的基本知识,我学习Python也有一周了,这是结合我学习时的笔记和遇到的问题的总结,文中有不正确的地方也欢迎大家点评点评,我也会虚心学习👨‍💻


posted @ 2022-08-18 20:44  小呆瓜耶  阅读(274)  评论(0编辑  收藏  举报