目录
本系列文章为参与【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
:只打印名称和版本
;json
:json格式
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,
TRUE
和FALSE
- 浮点: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也有一周了,这是结合我学习时的笔记和遇到的问题的总结,文中有不正确的地方也欢迎大家点评点评,我也会虚心学习👨💻