Python从入门到精通(黑马课程)

目录

运算符

数字运算符

比较运算符

逻辑运算符

转义字符

变量使用

变量定义

变量类型

变量命名

变量函数

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"。

  1. 变量名不应过长,通常应该尽量简短且具有描述性
  2. Python有一些保留字,这些保留字被编程语言预先定义,不能用作变量名
  3. 根据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("下载完成")
  1. 发送一个GET请求到豆瓣电影网站(https://movie.douban.com/),并获取响应内容。
  2. 使用BeautifulSoup对获取到的HTML进行解析,找到网页中class为"article"的div标签下所有的超链接(a标签)。
  3. 通过 img.find('img')['src'] 的方式直接从 img 标签中提取图片链接。遍历这些超链接,提取出每个超链接中的图片链接(img标签的src属性),并存储在一个列表中。
  4. 创建一个名为"jpg"的文件夹(如果该文件夹不存在的话)来存储下载的图片。
  5. 遍历图片链接列表,使用 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

每天更新一点点,今天计划学习章节:函数

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/195096.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

11月28日星期二今日早报简报微语报早读

11月28日星期二&#xff0c;农历十月十六&#xff0c;早报微语早读。 1、广电总局&#xff1a;有线电视终端系统默认设置应为“开机进入全屏直播”&#xff1b; 2、我国下一代互联网技术专利申请量10年超170万件&#xff1b; 3、字节收缩旗下游戏业务&#xff1a;已上线的游…

KaiwuDB 多模数据库-时序性能优化

随着物联网领域的快速发展&#xff0c;时序数据的产生和处理需求不断增长。为了满足实时性、高效性和准确性的要求&#xff0c;数据库需要进行时序性能优化&#xff0c;以提供快速的数据写入、实时查询和高效的数据存储与处理能力。 本期直播介绍了时序数据和时序数据库特征以…

第二十章总结

线程简介 在 Java 中&#xff0c;并发机制非常重要。在以往的程序设计中&#xff0c;我们都是一个任务完成后再进行下一个任务&#xff0c;这样下一个任务的开始必须等待前一个任务的结束。Java 语言提供了并发机制&#xff0c;程序员可以在程序中执行多个线程&#xff0c;每一…

助力企业实现更简单的数据库管理,ATOMDB 与 TDengine 完成兼容性互认

为加速数字化转型进程&#xff0c;当下越来越多的企业开始进行新一轮数据架构改造升级。在此过程中&#xff0c;全平台数据库管理客户端提供了一个集中管理和操作数据库的工具&#xff0c;提高了数据库管理的效率和便利性&#xff0c;减少了人工操作的复杂性和错误率&#xff0…

jquery 地址四级联级显示 不默认选择

代码效果 <body class"bgca"><img src"./files/joinTooBg.png" style"width: 100%;object-fit: cover;" alt""><!--填写申请资料--><section><div class"zi-liao"><h3 class"zong-h…

AMP State Evolution的计算:以伯努利先验为例

AMP State Evolution (SE)的计算 t 1 t1 t1时&#xff0c; E ( t ) E [ X 2 ] \mathcal E^{(t)} \mathbb E [X^2] E(t)E[X2]&#xff0c;SE的迭代式为 τ r ( t ) σ 2 1 δ E ( t ) E ( t 1 ) E ∣ η ( t ) ( X Z ) − X ∣ 2 , Z ∼ N ( 0 , τ r ( t ) ) \begin{a…

java设计模式学习之【抽象工厂模式】

文章目录 引言抽象工厂模式简介定义与用途实现方式&#xff1a; 使用场景优势与劣势抽象工厂模式在spring中的应用银行和贷款服务示例代码地址 引言 在我们之前的讨论中&#xff0c;我们探索了工厂方法模式——一种简化单一产品创建的设计模式。现在&#xff0c;我们将视角转向…

探索容灾架构演进之路,从单点到异地多活

1. 挑战与变革 在公司发展初期&#xff0c;业务发展和用户增长是首要关注的焦点。然而&#xff0c;随着业务规模不断扩大&#xff0c;用户数量逐渐攀升&#xff0c;应用稳定性的重要性也变得愈发凸显。在这个演进过程中&#xff0c;传统架构下的应用部署模式开始显露出多方面的…

多类场景、遍布各地,融云 IM 支撑多款应用全球增长

&#xff08;全网都在找的《社交泛娱乐出海作战地图》&#xff0c;点击获取&#x1f446;&#xff09; 无论是面向企业场景的工作流协同还是消费场景的网络效应形成&#xff0c;商务社交还是陌生人社交&#xff0c;IM 都是必备组件。IM 遍布互联网各角落&#xff0c;出现在所有…

用于图像分类任务的经典神经网络综述

&#x1f380;个人主页&#xff1a; https://zhangxiaoshu.blog.csdn.net &#x1f4e2;欢迎大家&#xff1a;关注&#x1f50d;点赞&#x1f44d;评论&#x1f4dd;收藏⭐️&#xff0c;如有错误敬请指正! &#x1f495;未来很长&#xff0c;值得我们全力奔赴更美好的生活&…

C++标准模板库 STL 简介(standard template library)

在 C 语言中&#xff0c;很多东西都是由我们自己去实现的&#xff0c;例如自定义数组&#xff0c;线程文件操作&#xff0c;排序算法等等&#xff0c;有些复杂的东西实现不好很容易留下不易发现的 bug。而 C为使用者提供了一套标准模板库 STL,其中封装了很多实用的容器&#xf…

基于单片机设计的超声波测距仪(采用HC-SR04模块)

一、前言 本项目是基于单片机设计的超声波测距仪&#xff0c;主要采用了STC89C52单片机和HC-SR04超声波测距模块。通过LCD1602液晶显示屏来展示测量的距离信息。 超声波测距技术是一种常见的非接触式测距方法&#xff0c;利用超声波的传播速度测量物体与测距器之间的距离。它…

GDOUCTF2023-Reverse WP

文章目录 [GDOUCTF 2023]Check_Your_Luck[GDOUCTF 2023]Tea[GDOUCTF 2023]easy_pyc[GDOUCTF 2023]doublegame[GDOUCTF 2023]L&#xff01;s&#xff01;[GDOUCTF 2023]润&#xff01;附 [GDOUCTF 2023]Check_Your_Luck 根据 if 使用z3约束求解器。 EXP&#xff1a; from z3 i…

【C++】探索C++模板编程

文章目录 什么是C模板&#xff1f;模板的基本语法类型模板参数模板函数的示例类模板的示例总结 C模板是一种强大的编程工具&#xff0c;它可以实现泛型编程&#xff0c;使代码更加灵活和可重用。本篇博客将介绍C模板的基本语法、类型模板参数和模板函数的使用&#xff0c;并通过…

第20章:多线程

20.1 线程简介 在Java中&#xff0c;并发机制非常重要&#xff0c;程序员可以在程序中执行多个线程&#xff0c;每个线程完成一个功能&#xff0c;并与其他线程并发执行&#xff0c;这种机制被称为多线程。但是&#xff0c;并不是所有编程语言都支持多线程。 线程的特点&#…

集群 CPU 利用率均值达 45% ,揭秘小红书规模化混部技术实践

根据 Gartner 预测数据显示&#xff1a;2024 年全球 IT 支出预计将达到 5.1 万亿美元&#xff0c;比 2023 年增长 8 %。然而&#xff0c;该机构的另一项调查数据显示&#xff1a;全球数据中心服务器平均 CPU 利用率普遍低于 20%&#xff0c;存在巨大的资源浪费。据测算&#xf…

Python内置函数与标准库函数的解释示例

一、内置函数与标准库函数的区分 Python 解释器自带的函数叫做内置函数&#xff0c;这些函数可以直接使用&#xff0c;不需要导入某个模块。 Python 解释器也是一个程序&#xff0c;它给用户提供了一些常用功能&#xff0c;并给它们起了独一无二的名字&#xff0c;这些常用功能…

C语言——标识符

一、标识符是什么 标识符是C程序的最基本组成部分&#xff0c;例如&#xff1a;变量名称、函数名称、数据类型等等&#xff0c;都是一个标识符。标识符的要求是&#xff1a;必须由字母&#xff08;区分大小写&#xff09;、数字、下划线组成。而且&#xff0c;标识符的第一个字…

Django回顾【一】

一、Web应用程序 Web应用程序是一种可以通过Web访问的应用程序&#xff0c;程序的最大好处是用户很容易访问应用程序&#xff0c;用户只需要有浏览器即可&#xff0c;不需要再安装其他软件。应用程序有两种模式C/S、B/S。 C/S&#xff1a;客户端<----->服务端 例如My…

共筑关基安全防线,开源网安加入中关村华安关键信息基础设施安全保护联盟

近日&#xff0c;开源网安正式加入“中关村华安关键信息基础设施安全保护联盟”&#xff08;以下简称&#xff1a;关保联盟&#xff09;成为会员单位&#xff0c;进一步加强与行业内重要机构、企业的协同合作&#xff0c;推动关键信息基础设施安全保护领域的生态建设。 未来&am…