IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> 学习日记之入门Python数据分析与挖掘 | 第一天:学习必备的Python基础(一) -> 正文阅读

[人工智能]学习日记之入门Python数据分析与挖掘 | 第一天:学习必备的Python基础(一)

目录

1 列表操作

1.1 通过索引提取列表元素

1.2 列表的切片操作

1.3?列表元素的增删改

1.3.1 增加列表元素

1.3.2 删除列表元素

1.3.3 修改列表元素

1.4?列表推导式

1.4.1 示例

1.4.2 练习1:求y=sin(x)在区间 [0, 2*pi] 与X轴围成的面积

1.4.3 练习2:蒙特卡洛算法估算pi

2 分支语句

2.1 练习1:判断用户名及密码是否正确

2.2 练习2:冒泡排序


1 列表操作

# 创建列表
a = [1, 'Hello', 2.3, True, 'World']
a

?运行结果:

[1, 'Hello', 2.3, True, 'World']

1.1 通过索引提取列表元素

# 用正数索引提取列表元素;索引从左往右,0开始
a[0]

运行结果:

1

# 用负数索引提取列表元素;索引从右往左为-1、-2、...
a[-3]

运行结果:

2.3

1.2 列表的切片操作

a[1: 4]  # [from: to] 前闭后开;取索引为[1,4)内的所有元素

运行结果:

['Hello', 2.3, True]
a[1:]  # [from: to];from默认为0,to默认为-1

运行结果:

['Hello', 2.3, True, 'World']

a[::2]  # [from: to: step],切片第三个参数为步长,默认值为0
        # 提取的元素的索引为:0,2,4,...,是一个等差数列,公差为step

运行结果:

[1, 2.3, 'World']

a[::-1]  # 步长取-1,:元素顺序前后颠倒

运行结果:

['World', True, 2.3, 'Hello', 1]

1.3?列表元素的增删改

1.3.1 增加列表元素

# 1 创建列表
a = ['一']
print('1', a)

# 2 通过加号拼接列表
a = a + ['二']
print('2', a)

# 3 .append():将对象追加到列表末尾,不改变待追加对象的数据结构(下例直接把列表对象追加到列表中)
a.append(['三'])
print('3', a)

# 4 .extend():列表拼接,类似 a + ['pear']
a.extend(['四'])
print('4', a)

# 5 .insert():在指定位置插入对象,不改变待插入对象的数据结构(下例直接把列表对象插入列表中)
a.insert(1, ['插队'])  # 在索引为1的位置上插入['插队'];
print('5', a)print('e', e)

运行结果:

1 ['一']
2 ['一', '二']
3 ['一', '二', ['三']]
4 ['一', '二', ['三'], '四']
5 ['一', ['插队'], '二', ['三'], '四']

1.3.2 删除列表元素

# 创建列表
a = list('abccded')
print(a)

# .remove():删除列表中首次出现的指定元素
a.remove('c')
print(a)

# del:先用索引提取出元素,再作删除
del a[-1]
print(a)

运行结果:

['a', 'b', 'c', 'c', 'd', 'e', 'd']
['a', 'b', 'c', 'd', 'e', 'd']
['a', 'b', 'c', 'd', 'e']

1.3.3 修改列表元素

# 创建列表
a = list('abcdef')
print(a)

# 提取出元素,重新赋值
a[1] = 'B'  # 'b'转换为'B'
print(a)

运行结果:

['a', 'b', 'c', 'd', 'e', 'f']
['a', 'B', 'c', 'd', 'e', 'f']

1.4?列表推导式

1.4.1 示例

# 创建列表
# a = list('123')  # list():创建列表,把引号内的内容变一个个字符元素
# a  # ['1','2','3']
a = [1, 2, 4]  

# 列表推导式
b = [i*2 for i in a]
print(b)

# 上述列表推导式相当于
b = []
for i in a:
    b.append(i*2)
print(b)

# for循环,列表推导式,自定义函数三者效率由高到低:
# 自定义函数 > 列表推导式 > for循环

运行结果:

[2, 4, 8]
[2, 4, 8]

1.4.2 练习1:求y=sin(x)在区间 [0, 2*pi] 与X轴围成的面积

提示:把曲线围成的面积分割成多个矩形,分割得越细,矩形面积和越接近真是面积。

# 求y=sin(x)从0到2*pi与X轴围成的面积
import math
# 1 把定义域[0, 2*pi]划分为n小份
n = 50000  # n越大,计算越接近真实值

# 2 求出每小份宽度
width = 2*math.pi/n

# 3 求出每小份对应的高度
x = [i*width for i in range(n)]
y = [abs(math.sin(x0)) for x0 in x]  # abs():取绝对值

# 4 求面积
s = sum([width*y[i] for i in range(n)])
s

运行结果:

3.999999994736218

1.4.3 练习2:蒙特卡洛算法估算pi

提示:由下图易知,当点足够多时有以下关系:

扇形面积:正方形面积 = 扇形中点数:正方形中点数 = (pi*r*r)/4:1 = pi/4:1(此处r为1)

则:pi =?4*M/N

# 蒙特卡洛算法估算pi
# 1. 设置总点数N
N = 10000  # N越大,计算结果越接近真实值

# 2. 生成N对随机数对,模拟平面中的点
import random
data = [[random.random() for j in range(2)] for i in range(N)]

# 3. 计算扇形内点数M
M = sum([(math.sqrt(x**2 + y**2)<=1) for x, y in data])
# 分析:
# math.sqrt(x**2 + y**2),计算该点到原点的距离
# math.sqrt(x**2 + y**2)<=1,若点在扇形上,则记为True,否则记为False
# M = sum([(math.sqrt(x**2 + y**2)<=1) for x, y in data]),计算扇形上的点数

# 4. 计算pi
4*M/N

# pi值不能被正确估算的原因:
# (1)N值数量有限
# (2)生成的数据没取到1
# (3)计算机并非真正随机

运行结果:

3.1348

2 分支语句

2.1 练习1:判断用户名及密码是否正确

题目:让用户输入账号及密码,然后判断用户名及密码是否正确,如果正确则输出“登陆成功”,否则输出 “用户名或密码错误”。

参考样例:

# 1 设定正确用户名、密码
user_name = '快乐派大星'
password = '123456'

# 2 输入用户名、密码进行登录验证
user_name_tmp = input('请输入用户名:')
password_tmp = input('请输入密码:')

# 3 判断用户名、密码是否正确,并执行相应操作
if ((user_name_tmp == user_name) & (password_tmp == password)):  # 如果条件为真,输出登录成功
    print('登录成功!')
else:  # 否则,输出以下内容
    print('用户名或密码错误。')

运行结果:

请输入用户名:快乐派大星
请输入密码:123456
登录成功!

2.2 练习2:冒泡排序

# 对序列[28,30,10,17,3,25,12,35,8,49,46]按从小到大顺序进行排列。
data = [28,30,10,17,3,25,12,35,8,49,46]

# 1 比较两两之间的大小
# 2 如果前一个数据大于后一个数据,则大者放在后

# 代码一:(未优化)
# data = [28,30,10,17,3,25,12,35,8,49,46]
# for i in range(len(data)):  
#     for j in range(len(data)-1):  
#         if data[j] > data[j+1]:
#             data[j], data[j+1] = data[j+1], data[j]
# data

# 代码二:优化后
for i in range(len(data)-1):   # n个数,实际上只需排序n-1轮
    for j in range(len(data)-1-i):  # 减i:已排好序的数无需再次排序
    # 第一轮需排10个数,第二轮9,第三轮8...
        if data[j] > data[j+1]:
            data[j], data[j+1] = data[j+1], data[j]
data

# 代码一、二结果一样,代码二运算量较小

运行结果:

[3, 8, 10, 12, 17, 25, 28, 30, 35, 46, 49]

本期到此结束,下期再见!

??

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2021-10-25 12:32:33  更:2021-10-25 12:33:17 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/27 8:44:30-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码