目录
运算符
数字运算符
比较运算符
逻辑运算符
转义字符
变量使用
变量定义
变量类型
变量命名
变量函数
input函数
type函数
条件语句
If
格式
案例1,判断年龄
案例2,借钱
案例3,and、or应用
循环语句
for
格式
案例1,打印一个列表
案例2,判断数字是偶数还是奇数
案例3,查找列表中的最大值和最小值
While
格式
案例1,打印5遍字符串
案例2,计算1到10的 求和
案例3,计算1到10的偶数求和
案例4,验证用户密码
Break
Contiune
while循环嵌套
九九乘法表
PIP包管理器
基础命令
指定源下载
国内源
下载到本地
安装本地的包
文件操作
图片操作
打开图片
移动图片
下载图片(爬虫)
文件操作
打开文件
向文件追加内容
练习实例
九九乘法表
判断分数
判断验证次数
FAQ
调试打断点
编辑
常见报错
名字没有被定义
语法错误
缩进错误
运算符
数字运算符
运算符 | 描述 | 示例 |
+ | 加 | 4 + 2 = 6 |
- | 减 | 4 – 2 = 2 |
* | 乘 | 4 * 2 = 8 |
/ | 除 | 4 /2 = 2 |
// | 取整数,返回除法的整数部分 | 4 // 2 = 2; 9 // 2 = 4 |
% | 取余数 | 4 % 2 = 0;5 % 2 = 1 |
** | 幂,平方、次方 | 1 ** 2 = 2;4 ** 0.5 = 2 |
比较运算符
运算符 | 描述 | 示例 |
== | 检查两个操作的值是否相等,如果是,则条件成立,返回True | 1 == 1 “haha” == “haha” |
!= | 检查两个操作的值是否不相等,如果是,则条件成立,返回True | 2 != 1 “haha” != “heihei” |
> | 检查左边的数值是否大于右边的数值,如果是,则条件成立,返回True | 2 > 1 |
< | 检查左边的数值是否小于右边的数值,如果是,则条件成立,返回True | 1 < 2 |
>= | 检查左边的数值是否大于等于右边的数值,如果是,则条件成立,返回True | 1 >= 1 |
<= | 检查左边的数值是否小于等于右边的数值,如果是,则条件成立,返回True | 1 <= 1 |
逻辑运算符
运算符 | 描述 | 示例 |
and | 逻辑与运算,等价于数学中的“且” | a and b(成立条件:a与b都为真) |
or | 逻辑或运算,等价于数学中的“或” | a or b(成立条件:a或者b只有一个满足条件) |
not | 逻辑非运算,等价于数学中的“非” | not a(成立条件:对a取反) |
运算符 | 描述 | 示例 |
= | 最基本的赋值运算 | 1 = 1 |
+= | 加赋值 | x += 1等同于x = x + 1 |
-= | 减赋值 | x -= 1等同于x = x - 1 |
*= | 乘赋值 | x -= 1等同于x = x - 1 |
/= | 除赋值 | x /= 2等同于x = x / 2 |
%= | 取余数赋值 | x %= 2等同于x = x % 2 |
**= | 幂赋值 | x **= 2等同于x = x ** 2 |
//= | 取整数赋值 | x //= 2等同于x = x // 2 |
&= | 按位与赋值 | x &= y等同于 x = x & y |
|= | 按位或赋值 | x |= y等同于 x = x | y |
^= | 按位异或赋值 | x ^= y等同于 x = x ^ y |
<<= | 左移赋值 | x <<= 1等同于x = x << 1 |
>>= | 右移赋值 | x >>= 1等同于x = x >> 1 |
转义字符
运算符 | 描述 |
\(在行尾时) | 续行符 |
\\ | 反斜杠符号 |
\’ | 单引号 |
\” | 双引号 |
\a | 响铃 |
\b | 退格(Backspace) |
\e | 转义 |
\000 | 空 |
\n | 换行 |
\v | 纵向制表符 |
\t | 横向制表符 |
\r | 回车 |
\f | 换页 |
变量使用
变量定义
变量名 = 值
phone = '010-8869'
print(phone)
变量类型
# 1. 数字类型:
a = 1
print(a, "是", type(a), "类型")
# 2. 字符串类型
a = "哈哈"
print(a, "是", type(a), "类型")
# 3. 列表类型
a = ["大", "王"]
print(a, "是", type(a), "类型")
# 4. 元组类型
a = (1, 2)
print(a, "是", type(a), "类型")
# 5. 集合类型
a = {'red', 'green'}
print(a, "是", type(a), "类型")
# 6. 字典类型
a = {'name': '王', 'age': '18'}
print(a, "是", type(a), "类型")
# 7. 布尔类型
a = True
b = False
print(a, "是", type(a), "类型")
print(b, "是", type(b), "类型")
变量命名
Python中,变量名由字母、数字和下划线组成,且不能以数字开头。变量名大小写敏感,因此"myVariable"和"myvariable"是不同的变量名。为了提高代码的可读性,建议使用有意义的变量名。例如,可以用"age"代表一个人的年龄,用"name"代表一个人的姓名。此外,还可以使用驼峰命名法,将多个单词连接在一起,每个单词的首字母都大写,例如"myAge"和"myName"。
- 变量名不应过长,通常应该尽量简短且具有描述性
- Python有一些保留字,这些保留字被编程语言预先定义,不能用作变量名
- 根据PEP 8,变量名应该用小写字母,并且可以使用下划线来分隔单词
变量函数
input函数
用户输入的任何内容默认都为字符串类型,可以参考如下将Str转换成int
num = int(input('输入数字:'))
print(num)
print(type(num))
num = input('香蕉的单价:')
num2 = input('买几斤?买;')
price = float(num) * float(num2)
print(price, '元')
type函数
查看该变量的类型,使用type()
num = float(input('输入数字:'))
print(num)
print(type(num))
条件语句
If
格式
if 要判断的条件1:
条件1成立时,要做的事情
......
elif 要判断的条件2:
条件2成立时,要做的事情
......
else:
条件不成立时,要做的事情
案例1,判断年龄
输入年龄,如果年龄小于18,不让入内,如果大于等于18可以入内
if age < 18:
print("未成年人禁止入内")
elif age >= 18:
print("正常票价")
案例2,借钱
发工资了:借钱超过100以上没钱,100以下可以借,没发工资直接退出
import sys
info = input("你发工资了吗?")
if info == 'no':
print("没发")
print("好的,那算了吧,本来还想问你借点钱的")
sys.exit()
if info == 'yes':
number = int(input("借我点钱:"))
if number >= 100:
print("我没那么多钱")
else:
print("可以")
案例3,and、or应用
a = 1
b = 2
if a > 0 and b > 1: #a和b都满足条件时,成立
print("条件表达式1成立")
if a > 4 or b > 3: #a或者b都满足条件时,成立,反之不成立
print("条件表达式2成立")
else:
print("未满足其中一项,条件表达式2不成立")
if not a < 0: #a结果取反,满足条件时,条件成立
print("条件表达式3成立")
循环语句
for
格式
for 变量 in 可迭代对象:
执行语句1
......
else:
执行语句2
......
案例1,打印一个列表
list_info = ['哈哈', '呵呵', '嘿嘿']
for i in list_info:
print(i, end=' ')
打印一个列表,不自动换行,结尾以空格显示
案例2,判断数字是偶数还是奇数
for i in range(1, 11):
if i % 2 == 0:
print(f"数字{i}是偶数")
else:
print(f"数字{i}是奇数")
打印数字1~~10,判断数字是否除以2的余数为0
案例3,查找列表中的最大值和最小值
list_info = [1, 2, 4, 10, 55, 100, 86]
max_info = list_info[0]
min_info = list_info[0]
for i in list_info:
if i > max_info:
max_info = i
if i < min_info:
min_info = i
print(f"最大值是{max_info}")
print(f"最小值是{min_info}")
使用for循环依次去取列表的第一个值,第一次是1,第二次2......,这样每次找到的最小的或者是最大的数都会将当前变量更新为最大或最小数
While
格式
while 判断语句:
执行的代码
......
案例1,打印5遍字符串
用while循环打印5遍hello word
定义一个初始数值,记录循环次数。当循环次数的判断条件满足时,程序退出
count = 5
while count > 0:
print("hello word")
count = count - 1
if count == 0:
print("打印5遍完成,跳出循环")
break
print("game over")
定义一个初始数值,记录循环次数。当循环次数的判断条件不满足时,程序退出
count = 0
while count < 5:
print("hello word")
count = count + 1
print("已打印了5遍")
案例2,计算1到10的 求和
i = 0
result = 0
while i <= 100:
result += i
i += 1
print(result)
案例3,计算1到10的偶数求和
i = 0
result = 0
while i <= 100:
i += 1
#判断i中的值除以2是否等于0,验证其是否是偶数
if i % 2 == 0:
result += i
# print(result)
print(result)
案例4,验证用户密码
count = 3
while count > 0:
name = input("登陆用户名:")
pwd = int(input("密码:"))
if name == "admin" and pwd == 123 or name == "wyq" and pwd == 123:
print("用户名密码正确,正在登陆...")
print("登陆成功")
break
else:
count = count - 1
if count > 0:
print(f"用户名或者密码错误,请重新尝试,您还有{count}次机会")
else:
print("次数用尽,登陆失败,程序退出!")
当用户名密码均正确时,直接退出程序
当用户密码错误的时候,每次验证次数递减1,当剩余次数为0时,提示退出
Break
break:跳出整个循环,不会再循环该循环内容
i = 0
while i < 5:
i = i + 1
if i == 3:
break
print(f"当前i的值是{i}")
print(f"当退出循环时,i的值是{i}")
当i等于3时,跳出终止整个循环,所以当前循环内i的值应该是1和2,因为当i等于3的时候,break终止整个循环了
Contiune
continue:跳出本次循环,continue后面的代码不再执行,但是循环依然继续
a = 0
while a < 3:
a = a + 1
if a == 2:
continue
print(f"跳出本次循环后a的值是{a}")
print(f"当前a的值是{a}")
当a等于2时,跳出本次循环,后面的代码不执行,但是循环体依然进行,所以当前a的值是1和3。因为当a等于2的时候,contiune不执行后面的代码语句
while循环嵌套
九九乘法表
#定义一个行的循环,输出9行
row = 1
while row <= 9:
#定义一个列的循环
col = 1
#当列小于行时
while col <= row:
result = row * col
print(f"{col} * {row} = {result}\t", end=" ")
#print(row)
col = col + 1
print()
row = row + 1
PIP包管理器
Pip是Python的包管理器,它允许你安装和管理额外的库和依赖,这些库和依赖未包含在Python标准库中。pip是递归的缩写,其全名是“Pip Installs Packages”或者“Pip Installs Python”。除了Python外,Pip还可以用于其他一些Python的变体,例如PyPy。
Pip的主要功能如下:
- 安装Python包
- 卸载Python包
- 升级Python包
- 查看已安装的Python包
基础命令
pip list
pip install <package_name>
pip uninstall <package_name>
pip install --upgrade <package_name>
指定源下载
pip3 install -i https://pypi.douban.com/simple/ <package_name>
国内源
清华:https://pypi.tuna.tsinghua.edu.cn/simple
阿里云:http://mirrors.aliyun.com/pypi/simple/
中国科技大学 https://pypi.mirrors.ustc.edu.cn/simple/
华中理工大学:http://pypi.hustunique.com/
山东理工大学:http://pypi.sdutlinux.org/
豆瓣:http://pypi.douban.com/simple/
下载到本地
pip3 download urlopen -d "/opt/py_packge" -i https://pypi.mirrors.ustc.edu.cn/simple/
安装本地的包
pip3 install /opt/py_packge/urlopen-1.0.0.zip
文件操作
图片操作
打开图片
Pillow是一个Python图像处理库
yum -y install libjpeg*
pip3 install -i https://pypi.mirrors.ustc.edu.cn/simple/ pillow==8.4.0
from PIL import Image
image_path = 'E:\工具\pycharm\object\jpg\p1597238857.jpg'
image = Image.open(image_path)
image.show()
移动图片
from PIL import Image
import os
#打开本地图片
image_path = '/opt/pytest/file/1.jpeg'
image = Image.open(image_path)
#显示图片
image.show()
old_directory = '/opt/pytest/file'
new_directory = '/opt/pytest/file/jpeg'
#即使目录存在,也会正常完成创建目录操作
os.makedirs(new_directory, exist_ok=True)
#将目录路径和文件名拼接成一个完整的文件路径
new_file_path = os.path.join(new_directory, '荒.jpeg')
#移动文件到新目录
os.rename(image_path,new_file_path)
print(f"文件已保存到新目录:{new_file_path}")
下载图片(爬虫)
import re
import requests
from bs4 import BeautifulSoup
import os
from PIL import Image
url = 'https://movie.douban.com/'
header = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36'}
response = requests.get(url, headers=header, verify=False)
response.encoding = 'utf-8'
#print(response.text)
main_list = BeautifulSoup(response.text, "html.parser")
#print(main_list)
info_list = main_list.find("div", class_="article").find_all('a')
#print(info_list)
text = info_list
text = ''.join(str(tag) for tag in text)
# 使用 BeautifulSoup 解析 HTML
soup = BeautifulSoup(text, 'html.parser')
# 提取所有图片链接
#遍历所有的<img>标签,并将每个标签的src属性的值添加到一个新的列表中
image_links = [img['src'] for img in soup.find_all('img')]
# 输出提取到的图片链接
os.makedirs("jpg", exist_ok=True)
for link in image_links:
jpg_name = link.split("/")[-1]
img_data = requests.get(link).content
with open(os.path.join("jpg", jpg_name), 'wb') as f:
f.write(img_data)
print(f"已下载: {jpg_name}")
print("下载完成")
- 发送一个GET请求到豆瓣电影网站(https://movie.douban.com/),并获取响应内容。
- 使用BeautifulSoup对获取到的HTML进行解析,找到网页中class为"article"的div标签下所有的超链接(a标签)。
- 通过 img.find('img')['src'] 的方式直接从 img 标签中提取图片链接。遍历这些超链接,提取出每个超链接中的图片链接(img标签的src属性),并存储在一个列表中。
- 创建一个名为"jpg"的文件夹(如果该文件夹不存在的话)来存储下载的图片。
- 遍历图片链接列表,使用 requests.get(link).content 获取图片的二进制数据,然后将二进制数据使用 open 方法写入以图片链接中最后一部分命名的文件中,保存在"jpg"文件夹中。
文件操作
打开文件
file_path = '/opt/pytest/file/信息笔记.txt'
#打开文件,只读模式
with open(file_path,'r') as file:
#读取文件内容
file_content = file.read()
print(file_content)
向文件追加内容
file_path = '/opt/pytest/file/信息笔记.txt'
with open(file_path, 'a') as file:
file.write('加入语句1:你好!\n')
file.write('加入语句2:再见!\n')
with open(file_path, 'r') as file:
file_content = file.read()
print(file_content)
练习实例
九九乘法表
# @Time : 2023/11/17 99乘法表
for i in range(1,10):
for j in range(1, i+1):
result = j * i
print(f"{j}*{i}={result}", end="\t")
print()
判断分数
# @Time :2023/11/17 判断分数70
num = float(input('输入学生的分数:'))
if num >= 90:
print("优秀")
elif 90 > num >= 80:
print("良")
else:
print("有待观察")
判断验证次数
# @Time :2023/11/17 判断验证次数
count = 3
while count > 0:
number = 10
num = int(input("输入数字:"))
if num == number:
print(f"输入数字{num}正确")
break
else:
count = count - 1
if count > 0:
if num < 10:
print(f"输入数字{num}小了,还剩{count}次机会")
else:
print(f"输入数字{num}大了,还剩{count}次机会")
else:
print("没机会了,游戏结束")
FAQ
调试打断点
F8单步走
常见报错
名字没有被定义
a = 1
print(b)
Traceback (most recent call last):
File "E:\工具\pycharm\object\基础学习.py", line 10, in <module>
print(b)
^
NameError: name 'b' is not defined
语法错误
a = 1
print(a'')
File "E:\工具\pycharm\object\基础学习.py", line 9
print(a'')
^^
SyntaxError: invalid syntax
缩进错误
a = 1
print(a)
File "E:\工具\pycharm\object\基础学习.py", line 9
print(a)
IndentationError: unexpected indent