testOne

1.配置虚拟环境

在配置好vscode和Python插件的开发环境中配置虚拟环境

```cmd

#创建虚拟环境

python -m venv 环境名 #内置的venv模块

python -m venv .env

cd .env/scripts

activate.bat

安装库

```cmd

pip instll abc #安装abc库,支持在线/离线安装

pip list #查询已安装的库

```

2. 输入输出

求圆面积,实现输入圆的半径 r,输出圆的面积 s(π 取 3.14,四舍五入保留 2位小数)

```python

pi = 3.14 # 定义π的值

#r = float(input("请输入圆的半径: ")) # 输入半径并转换为浮点数

r = float(input("请输入圆的半径: ")) # 注意转换float

s = pi * r * r # 计算面积:π*r² 周长 2*π*r

print("圆的面积为: {:.2f}".format(s)) # 输出结果,四舍五入保留2位小数

```

求圆面积,实现输入圆的半径 r,输出圆的周长c(π 取 3.14,四舍五入保留 2位小数)

```python

pi = 3.14 # 定义π的值

#r = float(input("请输入圆的半径: ")) # 输入半径并转换为浮点数

r = float(input("请输入圆的半径: ")) # 注意转换float

c=2* pi * r # 计算面积:π*r² 周长 2*π*r

print("圆的周长为: {:.2f}".format(c)) # 输出结果,四舍五入保留2位小数

求球体的体积,实现输入球体的半径 r,输出球体的体积(π 取 3.14,四舍五入保留 2位小数)

```python

pi = 3.14 # 定义π的值

#r = float(input("请输入球体的半径: ")) # 输入半径并转换为浮点数

r = float(input("请输入球体的半径: ")) # 注意转换float

c=(4/3)*pi*(r**3)

print("球体的体积为: {:.2f}".format(c)) # 输出结果,四舍五入保留2位小数

```python

pi = 3.14 # 定义π的值

#r = float(input("请输入圆的半径: ")) # 输入半径并转换为浮点数

r = float(input("请输入圆的半径: ")) # 注意转换float

s = pi * r * r # 计算面积:π*r² 周长 2*π*r

print(f"圆的面积为: {round(s, 2)}") # 输出结果,四舍五入保留2位小数

```

3.遍历循环

在控制台输出

```python

+++++++++++++

+++++++++++

+++++++++

+++++++

+++++

+++

```

for i in range(7,0,-1):

printf("*""*(2*i-1)).rjust(15)

```python

for i in range(7,0,-1): #range 遍历循环

print(("+" * (2 * i - 1)).rjust(15)) #打印,字符串复制,翻转

```

```python

++ ++

+++ +++

++++ ++++

+++++ +++++

```

```python

for i in range(1,6): #range 输出有n行就到n+1

left="+"*i #左边

middle=" "*(11-2*i)#中间

right="+"*i#右边

print("{}{}{}".format(left,middle,right)) #打印,字符串复制,翻转

```

4.条件选择

输入任意两个数 x 和 y,比较大小

```python

输入两个数

x = float(input("请输入第一个数 x: "))

y = float(input("请输入第二个数 y: "))

比较大小并输出结果

if x > y:

print("x 大于 y")

elif x < y:

print("x 小于 y")

else:

print("x 等于 y")

```

输入任意一个1000以内的整数x,实现 x大于等于900时输出"A",大于等于600且小于900时输出"B",小于600时输出"C"

```python

输入

x = eval(input("请输入1000以内的整数x: "))

比较大小并输出结果

if x >= 900:

print("A")

elif 600<=x < 900:

print("B")

else:

print("C")

```

求平均成绩

```python

x = 98,60,52,34,76,89

保留大于等于60的成绩

score=i for i in x if i\>=60

print(sum(score)/len(score))

```

5.排序-选择排序

算法将数据序列分为两个区域:已排好序的区域和待排序的区域。初始时,已排序区域为空,整个序列都是待排序的。

排序过程中,算法反复执行以下步骤:

  1. 从第二个元素开始遍历数组

  2. 将当前元素与已排序部分的元素比较

  3. 在已排序部分找到合适的位置,将当前元素插入

通过不断从剩余未排序的元素中选择最小的元素并放到已排序序列的末尾,算法逐步构建有序序列。当待排序区域为空时,整个序列就完成了排序。

这种方法就像是在一堆牌中,每次都找出最小的一张放在左侧,逐渐形成一个从小到大排列的序列。

```python

def insertion_sort(arr):

n = len(arr)

从第二个元素开始遍历

for i in range(1, n):

当前要插入的元素

key = arri

将这个元素与前面已排序部分的元素比较

j = i - 1

如果前面的元素大于key,则将其后移

while j >= 0 and arrj > key:

arrj + 1 = arrj

j -= 1

将key插入到正确的位置

arrj + 1 = key

return arr

测试代码

if name == "main":

test_array = 64, 25, 12, 22, 11

print("原始数组:", test_array)

sorted_array = insertion_sort(test_array)

print("排序后数组:", sorted_array)

```

排序:前面排好序,找到后面的序列里面的最小值,进行交换

```python

def my_sort(arr):

n = len(arr) #获取数组长度

for i in range(n):

tmp = i

for j in range(i+1, n): #指定循环范围

if arrj < arrtmp:

tmp = j #赋值最小值索引

arri, arrtmp = arrtmp, arri #交换元素

return arr

测试代码

if name == "main":

test_array = 64, 25, 12, 22, 11

print("原始数组:", test_array)

sorted_array = my_sort(test_array)

print("排序后数组:", sorted_array)

```

6. 求完数

```python

#求100以内的完数

def is_perfect(num):

factors_sum = 0

for i in range(1, num): #确定循环范围

if num % i == 0: #完数因子判断

factors_sum += i #完数因子相加

if factors_sum == num:

return True

return False

perfect_numbers = \[\]

for i in range(1, 1000):

if is_perfect(i): #判断是否为完数

perfect_numbers.append(i)

print("1000以内的完数有:", perfect_numbers) #【5】输出

```

6. 画图

画一个正方形

```python

import turtle

创建一个Turtle对象

t = turtle.Turtle()

t.speed(1000) # 设置绘图速度 0最快

设置正方形边长

side_length = 100 # 设置边长为100

设置画笔颜色和准备绘图

t.pencolor('red') # 画笔颜色

t.penup() # 抬起画笔

t.goto(-side_length/2, -side_length/2) # 将起点放在正方形的左下角

t.pendown() # 放下画笔

t.setheading(0) # 朝向角度,设置海龟方向向右

绘制正方形

for _ in range(4):

t.forward(side_length) # 向前移动side_length

t.left(90) # 左转90度

隐藏海龟并显示结果

t.hideturtle()

turtle.done()

```

7.爬虫

使用BeautifulSoup库爬取index.html页面中音乐名称和播放量数据,用列表输出

```

爬虫思路:

查找所有包含歌曲信息的div元素(class为'inner'的div)

从每个div中提取h2标签中的歌曲名称

找到第一个span标签提取播放量数值

将歌曲名称和播放量分别存储在两个列表中

最后打印这两个列表

```

`find()` 方法的基本语法是:

```

element.find(name, attrs, recursive, string, **kwargs)

```

参数解释:

  • `name`:标签名称,如 'div', 'span', 'p', 'h2' 等

  • `attrs`:标签属性,可以是字典形式 {'class': 'inner'}

  • `recursive`:是否递归查找,默认为 True

  • `string`:按标签内文本内容查找

  • `**kwargs`:其他属性,如 class_='inner'(注意有下划线)

```python

find默认获取第一个,那如何获取第二个?

获取所有span标签,然后取第二个(索引为1)

second_span = music.find_all('span')1

likes_count = int(second_span.text)

```

```python

from bs4 import BeautifulSoup

打开本地index.html文件

with open('music/index.html', 'r', encoding='utf-8') as file:

使用BeautifulSoup解析HTML内容

soup = BeautifulSoup(file, 'lxml')

查找所有inner类下的歌曲信息

#music_elements = soup.find_all('div', class_='inner')

music_elements = soup.find_all('div', {'class': 'inner'})

创建空列表存储歌曲名称和播放量

music_names = \[\]

play_counts = \[\]

遍历每个音乐元素,提取名称和播放量

for music in music_elements:

获取歌曲名称

name = music.find('h2').text

music_names.append(name)

获取播放量 - 直接找第一个span标签里的内容

play_count = int(music.find('span').text)

play_counts.append(play_count)

打印结果

print(music_names)

print(play_counts)

```

`select()` 方法的基本语法是:

```

element.select(标签)

```

参数解释:

可以是标签名、类名称、id名称或者组合查找

```python

from bs4 import BeautifulSoup

打开本地index.html文件

with open('example-biaoge/index.html', 'r', encoding='utf-8') as file:

使用BeautifulSoup解析HTML内容

soup = BeautifulSoup(file, 'lxml')

content = soup.select("table tbody tr")

print(content)

title_list=\[\]

score_list=\[\]

for i in content:

title = i.select('td')1.text

score = i.select('td')3.text

title_list.append(title)

score_list.append(score)

print(title_list)

print(score_list)

title_list = \[\]

```

8. 可视化

```python

import json

from flask import Flask, render_template

from markupsafe import Markup

from bs4 import BeautifulSoup

app = Flask(name)

@app.route("/")

def index():

从example/index.html获取数据

with open('music/index.html', 'r', encoding='utf-8') as file:

使用BeautifulSoup解析HTML内容

soup = BeautifulSoup(file, 'lxml')

查找所有inner类下的歌曲信息

music_elements = soup.find_all('div', class_='inner')

创建空列表存储歌曲名称和播放量

music_names = \[\]

play_counts = \[\]

遍历每个音乐元素,提取名称和播放量

for music in music_elements:

获取歌曲名称

name = music.find('h2').text

music_names.append(name)

获取播放量 - 直接找第一个span标签里的内容

play_count = int(music.find('span').text)

play_counts.append(play_count)

打印结果

print(music_names)

print(play_counts)

定义X轴数据 - 歌曲名称

x_data = music_names

定义Y轴数据 - 播放量

y_data = play_counts

将数据转换为JSON格式,以便在JavaScript中使用

xdatas = Markup(json.dumps(music_names))

ydatas = Markup(json.dumps(play_counts))

return render_template('index.html', xdatas=xdatas, ydatas=ydatas)

if name == 'main':

app.run()

```

for i in range (7,0,-1):

print("+"*(2*i-1)).rjust(15)

相关推荐
2601_9609067228 分钟前
科技“无人区”跋涉,难度高、不确定性大
windows·macos·pycharm·myeclipse
会飞的大鱼人1 小时前
一文搞懂 Java HashSet:把它想成游乐园里只允许一次入场的盖章名单
java·开发语言·windows
ziguo11222 小时前
C/C++ 错误处理全解:从 errno 到 C++ 异常
linux·c语言·c++·windows·visual studio
王维同学4 小时前
IFEO Debugger、VerifierDlls 与 SilentProcessExit 配置
c++·windows·安全·注册表
您^_^6 小时前
使用技巧(十一):Claude Code 最强审问官 —— grill-me 深度指南,装完先别写代码
人工智能·windows·个人开发·claudecode·deepseek v4 pro
酉鬼女又兒6 小时前
[特殊字符]零基础入门AI:归纳演绎、假设空间、归纳偏好、NFL、过拟合与欠拟合、模型评估选择、超参数、性能度量、混淆矩阵、P-R曲线和F1
人工智能·windows·python·深度学习·安全·机器学习·矩阵
山城码农笑松哥8 小时前
C盘空间救星:一键无损迁移软件数据到其他盘
windows·c盘清理迁移
WangWei_CM8 小时前
IFEO Debugger、VerifierDlls 与 SilentProcessExit 配置
windows
spencer_tseng20 小时前
Redis + Nacos.bat
java·windows·dos
会飞的小新21 小时前
Windows CMD 与 PowerShell 深度解析:底层原理、命令差异、自动化选型指南
运维·windows·自动化