python基础学习笔记2

2023-09-15 17:33:22

python基础语法

python的优点

  • 开源、易于维护、可移植
  • 易于使用、简单优雅
  • 广泛的标准库、功能强大
  • 可扩展、可嵌入
  • 所有的深度学习框架一般都有一个Python版的接口
  • ...

python典型应用

  •  数据分析:对数据进行清洗、去重、规格化和针对性的分析
  • 科学计算
  • 常规软件开发
  • 人工智能
  • 网络爬虫
  • WEB开发

python基础语法 

基础操作

#1.基础操作
age = 20 #声明一个变量age用来存储一个数字20
1+1      #基础数学加法
print('Hello World!')#打印Hello World!

条件判断if

  • Python指定任何非0和非空值为True,0 或者None为False
  • Python 编程中if 语句用于控制程序的执行,基本形式为:

  • 其中"判断条件"成立时(非零),则执行后面的语句,而执行内容可以多行,以缩进来区分表示同一范围。
  • else 为可选语句,当需要在条件不成立时执行内容则可以执行相关语句。
#2.条件判断if
if 1 == 2:#如果if跟随的条件为假,那么不执行属于if的语句,然后寻找else
    print("假的")
else:#寻找到else之后执行属于else中的语句
    print("1==2是假的")

循环操作

Python基础语法Python的循环有两种,一种是for...in循环,可以依次把list或tuple中的元素迭代出来

第二种是while,只要条件满足,就不断循环,条件不满足时退出循环在while ... else 在条件语句为false 时执行else 的语句块

#3.循环操作--while
sum = 0
n = 99
while n > 0:
    sum = sum + n 
    n = n - 1
print(sum)

break、continue、pass语句

#4.breal、continue、pass
#break语句可以跳出for和while的循环体
n = 1
while n <= 100:
    if n > 10:
        break
    print(n)
    n += 1

#continue语句跳过当前循环,直接进行下一轮循环
n = 1
while n < 10:
    n = n + 1
    if n % 2 == 0:
        continue
    print(n)

#pass是空语句,一般用作占位语句,不做任何事
for letter in 'love':
    if letter == 'v':
        pass
        print('pass')
    print(letter)

核心数据结构

Number(数字):Python支持int, float, complex三种不同的数字类型

#5.数据类型--Number(数字)
#python支持int,float,complex三种不同的数字类型
a = 5
b = 5.20
c = 5 + 2j
print(type(a),type(b),type(c))

String(字符串)

  • Python中的字符串可以使用单引号、双引号和三引号(三个单引号或三个双引号)括起来,使用反斜杠\转义特殊字符
  • Python3源码文件默认以UTF-8编码,所有字符串都是unicode字符串
  • 支持字符串拼接、截取等多种运算 
#5.数据类型--String(字符串)
#支持字符串拼接、截取等多种运算
a = "Hello"
b = "Python"
print("a + b 输出结果:", a + b)
print("a[1:3]输出结果:", a[1:3])

List(列表)

  • 列表可以完成大多数集合类的数据结构实现。列表中元素的类型可以不相同,它支持数字,字符串甚至可以包含列表(所谓嵌套)。
  • 列表是写在方括号[]之间、用逗号分隔开的元素列表。
  • 列表索引值以0 为开始值,-1 为从末尾的开始位置。
  • 列表可以使用+操作符进行拼接,使用*表示重复。
#5.数据类型--List(列表)
#列表是写在方括号 [] 之间、用逗号分隔开的元素列表
#列表索引值以0为开始值,-1为从末尾的开始位置
list = ['abcde',783,3.33,'moon',66.6]
print(list[-3:-1])

tinylist = [136,'moon']
print(list + tinylist)

Tuple(元组)

注意:定义一个只有1个元素的tuple,必须加逗号。

#5. 数据类型--Tuple(元组)
#tuple与list类似,不同之处在于tuple的元素不能修改。tuple写在小括号里,元素之间用逗号隔开
#元组的元素不可变,但可以包含可变对象,如list
t1 = ('abcde',666,3.33,'moon',30.3)
t2 = (1, )
t3 = ('a','e',['A','E'])
t3[2][0] = 'X'
print(t3)

# t1[3] = 'yes'
# print(t1)


# 报错:TypeError                                 Traceback (most recent call last)
# Cell In[15], line 9
#       7 t3[2][0] = 'X'
#       8 print(t3)
# ----> 9 t1[3] = 'yes'
#      10 print(t1)

# TypeError: 'tuple' object does not support item assignment
# 错误原因:在Python中,元组是不可变的。这意味着一旦定义了元组,其元素就无法修改。元组的元素保持不变,不能重新分配。

dict(字典)

#5.数据类型--dict(字典)
#字典是无序的对象集合,使用键-值(key-value)存储,具有极快的查找速度
#键(key)必须使用不可变类型
#同一个字典中,键(key)必须是唯一的。
d = {'Mack':99,'Bob':98,'Lucy':100}
print(d['Mack'])

set(集合)

#5.数据类型--set(集合)
#set和dict类似,也是一组key的集合,但不存储value。由于key不能重复,所以,在set中,没有重复的key。
#set是无序的,重复元素在set中自动被过滤。
s = set([3,3,4,4,5,5])
print(s)

常用库

  • numpy(Numerical Python的简称)是高性能科学计算和数据分析的基础包。
  • matplotlib由各种可视化类构成,内部结构复杂的可视化基础包。

 

人工智能概述与入门基础

人工智能无处不在

搜素引擎:网页、图片、视频、新闻、学术、地图

信息推荐:新闻、商品、游戏、书籍

图片识别:人像、用品、动物、交通工具

用户分析:社交网络、影评、商品评论

机器翻译、摘要生成......

什么是人工智能

人工智能(Artificial Intelligence),英文缩写为AI。它是研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门新技术科学。

使一部机器的反应方式像人一样进行感知、认知、决策、执行的人工程序或系统。

人工智能发展历程

  1. 1956诞生:Dartmouth会议;标志着AI的诞生
  2. 1957第一次高峰:罗森布拉特;发明第一款神经网络Perceptron
  3. 1970第一次低估:计算能力突破受限,机器未能完成大数据训练
  4. 1986第二次高峰:BP算法出现;大规模神经网络训练
  5. 2000第二次低估:AI计算机DARPA未实现;政府投入缩减
  6. 2014第三次浪潮:深度学习算法成功;语音和视觉识别为99%和95%
  7. NOW:AI爆发

人工智能与机器学习、深度学习关系

 机器学习:一种实现人工智能的方法

深度学习:一种实现机器学习的技术,人工神经网络是机器学习中的一个重要算法“深度”就是说神经网络中众多的层。

深度学习入门基础

深度学习优势--从图像识别说起

理想目的:让计算机像人一样理解图像

实际目的:让计算机将语义概念相似的图像划分为同一类别

图像识别面临挑战

  • 语义鸿沟(Semantic Gap)现象:图像的底层视觉特性和高层语义概念之间的鸿沟

        相同的视觉特性,不同的语义概念(相似但不同)

        不相似的视觉特性,相同的语义概念(相同但角度不同)

传统方法

  • 用全局的视觉底层特性统计量表示图像
  • 全局特征会丢掉了图像细节
  • 人工特征提取+分类器

深度学习 

手工地选取特征是一件非常费力、启发式(需要专业知识)的方法,能不能选取好很大程度上靠经验和运气,而且它的调节需要大量的时间,而深度学习是学习特征。

一般过程如下:

数学基础

  • 数据表示——标量、向量、矩阵和张量

        向量的范数、常见的向量

        常见的矩阵、矩阵的操作

  • 优化的基础——导数及其应用

        导数、泰勒公式

        拉格朗日乘数法

  • 概率模型的基础——概率论

        概率分布、边缘概率、条件概率

        期望、方差和协方差

深度学习框架

深度学习框架的优势:

  • 易用性:屏蔽底层,用户只需关注模型结构。同时,深度学习工具简化了计算,降低了深度学习入门门槛。
  • 高效性:灵活的移植性,可将代码部署到CPU/GPU/移动端上。选择具有分布式性能的深度学习工具会使模型训练更高效。

更多推荐

linux安装配置 flume

目录一解压安装包二配置部署(1)修改配置(2)下载工具(3)创建配置文件(4)启动监听测试(5)flume监控文件一解压安装包这里提供了网盘资源链接:https://pan.baidu.com/s/1Z0aItCHMybYpXkt3_RUaVw?pwd=s6pg提取码:s6pg这里安装包是放到/opt/install文

Java中List转字符串的方法

一、使用String.join方法在Java8之后,String类增加了一个静态方法join(),可以方便地将列表中的元素连接成字符串。//创建ListList<String>list=Arrays.asList("Google","Baidu","Taobao");//以逗号分隔的形式输出整个列表Stringresu

微服务保护

1.初识Sentinel1.1.雪崩问题及解决方案1.雪崩问题微服务中,服务间调用关系错综复杂,一个微服务往往依赖于多个其它微服务。如图,如果服务提供者I发生了故障,当前的应用的部分业务因为依赖于服务I,因此也会被阻塞。此时,其它不依赖于服务I的业务似乎不受影响。但是,依赖服务I的业务请求被阻塞,用户不会得到响应,则t

在c#中使用CancellationToken取消任务

目录🚀介绍:🐤简单举例🚀IsCancellationRequested🚀ThrowIfCancellationRequested🐤在控制器中使用🚀通过异步方法的参数使用cancellationToken🚀api结合ThrowIfCancellationRequested()🚀介绍:Cancellatio

POJ 3185 The Water Bowls 反转+点灯游戏

一、题目大意有20盏灯(其实20盏灯数据量太少了,1e7我觉得差不多都可以过)放在同一行,点亮某一盏灯,它左右两边的灯也会亮,然后边缘特殊考虑,电亮两端的灯,只会照亮它相邻的那一个。二、解题思路这其实就是一个反转问题,我们从第二盏灯开始循环到第20盏灯,对于每一次循环的i,我们计算出i-1的灯是否亮着,如果i-1亮着,

Golang 中的匿名变量详解

在Golang中,可以使用匿名变量来忽略不需要的返回值或占位符。匿名变量是一种特殊类型的变量,可以简化代码并提高可读性。本文将详细介绍匿名变量的定义、特性和使用方法。什么是匿名变量?在Golang中,匿名变量是一种没有显式声明名称的变量,通常用于在需要临时存储值但不需要在后续代码中使用该值的情况。匿名变量的声明方式是使

吃瓜教程第一二章学习记录

当大多数人听到"机器学习"时,他们会联想到机器人:一个可靠的管家或一个致命的终结者,这取决于你问谁。但是,机器学习并不只是未来主义的幻想,它已经存在了。事实上,在一些特殊的应用中,如光学字符识别(OCR)等,已经有了几十年的历史。但是第一个真正主流的ML应用是在20世纪90年代:垃圾邮件过滤器,它改善了数亿人的生活,并

【GPU编程】Visual Studio创建基于GPU编程的项目

vs创建基于GPU编程的项目🍊前言🐸方法一-CUDARuntime生成😝debug设置🍅方法二-空项目配置🍉🍉🍉代码验证🍊前言cuda以及cudnn的安装以及系统环境变量的配置默认已经做完。如果没有安装好配置好的,可以参考其他的博客。本博客只为记录在完成以上配置后,如何在vs端创建GPU编程的项目。🐸

多线程中的Semaphore信号量

在Java多线程编程中,Semaphore是一种用于控制资源访问的机制。Semaphore允许您限制同时访问某个资源的线程数量。这在需要限制并发访问的情况下非常有用,例如数据库连接池或有限数量的线程池。创建Semaphore要使用Semaphore,首先需要创建一个Semaphore对象并指定许可证数量。许可证数量表示

提升群辉AudioStation音乐体验,实现公网音乐播放

文章目录本教程解决的问题是:按照本教程方法操作后,达到的效果是本教程使用环境:1群晖系统安装audiostation套件2下载移动端app3内网穿透,映射至公网很多老铁想在上班路上听点喜欢的歌或者相声解解闷儿,于是打开手机上的某雅软件和某音乐软件点进去一看:奈何目前移动端的娱乐软件广告很烦人,不知不觉就会点进去而且不好

vue基础知识十一:Vue组件之间的通信方式都有哪些?

一、组件间通信的概念开始之前,我们把组件间通信这个词进行拆分组件通信都知道组件是vue最强大的功能之一,vue中每一个.vue我们都可以视之为一个组件通信指的是发送者通过某种媒体以某种格式来传递信息到收信者以达到某个目的。广义上,任何信息的交通都是通信组件间通信即指组件(.vue)通过某种方式来传递信息以达到某个目的举

热文推荐