【Python】基本使用

目录

变量的类型

整数 int

浮点数 float

字符串 str

字符串长度

格式化字符串

布尔类型  

动态类型

注释 

获取输入

浮点数比较

多元赋值

for循环

函数的定义和调用

创建函数/定义函数

调用函数/使用函数

列表

创建列表

切片操作

遍历列表

新增元素

判断元素是否在列表中

删除元素

连接列表

元组

创建元组

指定初始值

下标访问

切片操作

循环遍历 

 in判断元素是否存在,index获取下标

使用+拼接两个元组


变量的类型

在python中,变量的类型不需要在定义变量的时候显式声明,而是依靠初始化语句,根据初始化的值的类型来进行确定的。如下示例:

输出一个变量的类型

a=10
print(type(a))

输出如下所示: 

整数 int

在Python中,int能够表示的数据范围,是“无穷”的,与C++、Java的int不一样。Python的int是可以根据要表示的数据的大小,自动扩容。因此python中,整数只有int类型。

浮点数 float

C++和Java里面的float是四个字节,也叫做“单精度浮点数”,在Python中,float等同于C++和Java中的double。

字符串 str

Python中,使用引号把一系列字符引起来,就构成了字符串,引号用 ‘’ 或 "" 都可以的。 

如果字符串内需要包含引号,外面的引号用另一种引号即可

a='123"456"'

字符串长度

获取字符串长度可以通过len()方法

a='123"456"'
print(len(a))

格式化字符串

 当我们希望打印出 a=10 这样的内容,也就是a这个变量的值是可变的。

a=10
print(f"a={a}")

 这种语法,叫做“格式化字符串”,使用{}这样的语法,往字符串里嵌入变量或者表达式

布尔类型  

只有两种取值 True、False,主要用于逻辑判定,这里与C++不同的是开头字母大写

动态类型

程序运行过程中,变量的类型可能会发生改变

如下代码:

a=10
print(type(a))
a='hello'
print(type(a))
a=True
print(type(a))

结果如下: 

一个编程语言,是否是动态类型,只是取决于运行时,类型是否发生改变,不取决于变量定义的时候是否声明类型! 

注释 

有两种注释方式

第一种:注释行

使用#开头的行都是注释

#这是一行注释

# 开头的注释,一般是写在要注释的代码的上方,也有少数写在代码的右侧

第二种 :文档字符串

使用三引号引起来的称为“文档字符串”,也可以视为是一种注释。

  • 可以包含多行内容
  • 一般放在文件/函数/类的开头
  • """ 或者 "" 均可(等价)

"""
这是一段文档字符串
这是一段文档字符串
"""

获取输入

num=input("请输入一个整数:")
print(f"输入的整数是:{num}")

input的返回值,是一个str ,如果要对这个读取的str进行算术运算,可以通过int()进行转换

整数转字符串str()

字符串转浮点数float() 

浮点数比较

在python中浮点数直接进行比较的话,可能不会返回正确的结果。

a=0.1
b=0.2
print(a+b==0.3)

例如上述的代码返回的结果是false,因为浮点数在内存中的存储和表示,是可能存在误差的,这样的误差在进行算术运算的时候就可能被放大,从而导致 == 的判定出现误判

print(a+b)
print(0.3)

我们可以输出a+b的结果和0.3进行对比,如下:

0.30000000000000004
0.3

因此我们可以通过两个数的差是否在误差范围之内,判断两个数是否相等

print(-0.000001<(a+b-0.3)<0.000001)

上述返回的结果是true

多元赋值

a,b=10,20
print(a)
print(b)

上述代码将10赋值给a,20赋值给b。

多元赋值还可用在交换两个数的值

a,b=10,20

a,b=b,a
print(a)
print(b)

需要注意的是,python中不支持++、--的自增自减操作 

for循环

基本语法格式

for 循环变量 in 可迭代对象:

        循环体

  • python的for和其他语言不同,没有初始化语句,循环条件判断语句,循环变量更新语句,而是更加简单。
  • 所谓的可迭代对象,只的是内部包含多个元素,能一个一个把元素取出来的特殊变量。 

代码示例:打印1-10

for i in range(1,11) :

        print(i)

使用range函数,能够生成一个可迭代对象,生成的范围是[1,11),左闭右开

代码示例:打印2、4、6、8、10

for i in range(2,12,2)

        print(i)

range还提供第三个参数,表示“步长”默认的步长是1,这个步长可以是整数也可以是负数

  • shift+F6可以针对变量进行重命名,会自动的把所有要修改的名字都替换

函数的定义和调用

创建函数/定义函数

def 函数名(形参列表):

        函数体

        return 返回值

调用函数/使用函数

函数名(实参列表)                            //不考虑返回值

返回值=函数名(实参列表)                //考虑返回值 

python一个函数可以返回多个值

示例:

def test():
    return 1,2,3

x,y,z=test()

在函数内部需要修改全局变量的话,需要引入global关键字

x=10

def test():

        x=20

 print(f"x={x}")

如上所示,输出结果是x=10,因为在函数内部x=20,被看作是创建了一个x变量,因此要对全局的x进行修改,需如下所示:

x=10

def test():

        global x

        x=20

 print(f"x={x}")

 for循环不影响变量的作用域,只有函数,类才影响作用域

for i in range(1,11)

        print(i)

print(i)

列表

列表和元组类似于其他编程语言中的“数组”

列表和元组之间的区别:

  • 列表是可变的,创建好了之后,随时能改(散装辣条)
  • 元组是不可变的,创建好了之后,改不了,要想改,只能丢弃旧的,搞一个新的(包装辣条)

创建列表

空列表

a=[]     a=[1,2,3]

b=list()

c++/java里面要求一个数组里面只能存相同类型的变量,python中列表可以放不同类型的变量 

(1) 可以用内建函数len来获取到列表的长度

len(a)

(2) python中的下标,还可以写成负数

例如[-1]等价于[len(a)-1]

切片操作

通过下标操作是以此取出里面第一个元素

通过切片,则是一次取出一组连续的元素,相当于得到一个子列表

  • 使用[ :]的方式进行切片操作

alist=[1,2,3,4]

print(alist[1:3])

  • [1:3]表示的是[1,3)这样由下标构成的前闭后开区间
  • 最终结果为2,3
  • 进行切片的时候,可以省略边界

 alist=[1,2,3,4]

print(alist[1:])

  • 省略后边界,意思是从开始位置,一直取到整个列表结束
  • 省略前边界,意思是从列表的0号元素开始取,一直取到结束的边界
  • 前后边界都省略掉,得到的就是列表自身
  • 切片操作还可以指定步长

 alist=[1,2,3,4]

print(alist[ ::1 ])

  • 1的意思是,每隔一个元素取一个元素
  • 示例:

  • 还可以这样print(alist[ 1:-1:2 ])进行切片
  • 步长的数值还可以是负数,当步长是负数的时候,意思是从后往前遍历元素
  • 当切片中的范围超出有效下标之后,不会出现异常,而是尽可能把符合要求的元素获取到

遍历列表

第一种:不通过下标来访问元素

示例:

a=[1,2,3,4,5]

for elem in a:

        print(elem)

这种方式通过elem取出列表元素,对elem修改不会影响到原来的a数组

第二种:通过下标来访问元素

示例:

a=[1,2,3,4,5]

for i in range(0,len(a))

        print(a[i])

这种方式通过下标取出列表元素,对elem修改会影响到原来的a数组

新增元素

1、通过append方式往列表末尾新增一个元素

a=[1,2,3,4]

a.append(5)

print(a)

结果如下:

2、还可以使用insert方法,往列表的任意位置来新增元素

a=[1,2,3,4]

a.insert(1,'hello')

print(a) 

结果如下:

如果插入下标超过列表长度,插入的元素直接添加在列表的末尾

判断元素是否在列表中

1、使用in来判定某个元素是否在列表中。

a=[1,2,3,4]

print(1 in a)

print(10 in a)

结果如下:

与in相对应的还有一个not in

print(1 not in a)

判断1是否不在a中

 2、使用index方法,来判定,当前元素在列表中的位置,得到一个下标

a=[1,2,3,4]

print(a.index(2))

print(a.index(10)) //若元素不在列表中,抛出异常

删除元素

 1、使用pop方法删除最末尾元素

alist=[1,2,3,4]

alist.pop()

2、pop也可以按照下标来删除元素

alist=[1,2,3,4]

alist.pop(2)

print(alist)

结果如下:

3、使用remove方法删除对应值的元素

alist=[1,2,3,4]

alist.remove(2)

连接列表

1、使用+能够把两个列表拼接在一起

此处的+结果会生成一个新的新列表,而不会影响旧列表的内容

alist=[1,2,3,4]

blist=[5,6,7]

print(alist+blist)

结果如下:

2、使用extend拼接(效率比较高)

这个拼接是把后一个列表的内容拼接到前一个列表里 

extend方法没有返回值

alist=[1,2,3,4]

blist=[5,6,7]

c=alist.extend(blist)

print(alist)

print(blist)

print(c)

结果如下:

  • python中"None"这是一个特殊的变量的值,表示啥都没有

3、使用+=进行拼接

alist=[1,2,3,4]

blist=[5,6,7]

alist+=blist

print(alist)

结果如下:

元组

创建元组

创建元组有两种方法:

//1.方法1

a=()

//2.方法2

b=tuple()

指定初始值

创建元组时可以指定初始值,元组中的元素也可以是任意类型

a=(1,2,3,4,5)

下标访问

也可以通过下标访问元组的元素 ,越界也是抛异常

a=(1,2,3,4,5)
print(a[1])

切片操作

a=(1,2,3,4,5)
print(a[1:3])

循环遍历 

a=(1,2,3,4,5)
for elem in a:
    print(elem)

 in判断元素是否存在,index获取下标

a=(1,2,3,4,5)

print(3 in a)


print(a.index(3))

使用+拼接两个元组

a=(1,2,3)
b=(4,5,6)
print(a+b)

元组只支持读操作,不支持改操作,因此不支持pop,extend,append方法

当进行多元赋值的时候,其实本质上就是按照元组的方式进行工作的

def getPoint():
    x=1
    y=2
    return x,y

print(type(getPoint()))

结果如下:

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

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

2024最全网络安全工程师面试题(附答案),金九银十找工作必看!

《网安面试指南》http://mp.weixin.qq.com/s?__bizMzkwNjY1Mzc0Nw&mid2247484339&idx1&sn356300f169de74e7a778b04bfbbbd0ab&chksmc0e47aeff793f3f9a5f7abcfa57695e8944e52bca2de2c7a3eb1aecb3c1e6b9cb6abe509d51f&scene21#wechat_redirect 《Java代码审…

[matlab]matlab调用python的各种方法

前言 在MATLAB中&#xff0c;可以使用 py 函数来调用Python模块和函数。在此基础上&#xff0c;我们可以很轻易的调用python中的各种模块&#xff0c;方便我们在神经网络上的应用仿真。 以下是使用MATLAB调用Python模块的基本步骤&#xff1a; 确保你的系统已经正确安装了Py…

文心一言 VS 讯飞星火 VS chatgpt (347)-- 算法导论23.2 6题

六、假定一个图中所有的边权重均匀分布在半开区间[0,1)内。Prim算法和Kruskal算法哪一个可以运行得更快&#xff1f;如果要写代码&#xff0c;请用go语言。 文心一言&#xff1a; 在比较Prim算法和Kruskal算法在特定条件下的性能时&#xff0c;我们需要考虑几个因素&#xff…

复杂情感识别系统

复杂情感识别系统&#xff08;CERS&#xff09;是一种先进的技术平台&#xff0c;旨在通过分析情感的组合、相互关系及其动态变化来解读和识别复杂的情感状态。这种系统通常采用以下技术和方法&#xff1a; 机器学习与深度学习&#xff1a; 通过训练算法识别和解释大量情感数据…

[Linux]:进程间通信(上)

✨✨ 欢迎大家来到贝蒂大讲堂✨✨ &#x1f388;&#x1f388;养成好习惯&#xff0c;先赞后看哦~&#x1f388;&#x1f388; 所属专栏&#xff1a;Linux学习 贝蒂的主页&#xff1a;Betty’s blog 1. 进程间通信介绍 1.1 进程间通信的概念 进程间通信简称IPC&#xff08;In…

jdk相关介绍

JDK&#xff0c;全称Java Development Kit&#xff0c;是Java语言开发的基础工具包。它包含了Java运行时环境&#xff08;JRE&#xff09;以及用于开发Java应用程序的各种工具和库。JDK为Java程序员提供了编译、调试和运行Java应用程序所需的全部环境。 JDK的主要组成部分包括&…

离线数仓DWD层

离线数仓DWD层 DWD层设计要点&#xff1a;9.1 交易域加购事务事实表9.2 交易域下单事务事实表9.3 交易域取消订单事务事实表9.4 交易域支付成功事务事实表9.5 交易域退单事务事实表9.6 交易域退款成功事务事实表9.7 交易域购物车周期快照事实表9.8 工具域优惠券领取事务事实表9…

2024/9/15 408“回头看”之应用层小总结(下)

域名系统DNS: 本地域名服务器 本地域名服务器起着代理的作用&#xff0c;会将报文转发到根域名服务器、顶级域名服务器、权限域名服务器。 递归查询&#xff1a; 迭代查询&#xff1a; 文件传送协议FTP: FTP客户和FTP服务器之间使用的是tcp连接。 控制连接使用21端口&…

树莓派5上手

1 安装系统 Raspberry Pi OS 是基于 Debian 的免费操作系统&#xff0c;针对 Raspberry Pi 硬件进行了优化。Raspberry Pi OS 支持超过 35,000 个 Debian 软件包。树莓派 5 可以安装各种系统&#xff0c;但是如果对于系统没有特殊的要求&#xff0c;还是安装 Raspberry Pi OS …

基于SSM的二手车管理系统的设计与实现 (含源码+sql+视频导入教程)

&#x1f449;文末查看项目功能视频演示获取源码sql脚本视频导入教程视频 1 、功能描述 基于SSM的二手车管理系统4拥有三种角色 管理员&#xff1a;订单管理、在售车辆管理、下架车辆管理、品牌管理、分类管理、推荐管理、统计等 商家&#xff1a;登录注册、添加/下架/删除车辆…

各类元器件调试记录-E+H

一、EH压力传感器 适用型号为&#xff1a; Cerabar S PMC71, PMP71/75 Deltabar S FMD76/77/78, PMD70/75 Deltapilot S FMB70 调试过程&#xff1a;(后续补上图片) 一、湿标(湿调) 1、前提条件&#xff1a;罐体可以灌满和实际水箱水位高度 2、调试步骤&#xff1a; A、调节语…

网络安全有救了,37所高校新增网络安全空间安全专业

《网安面试指南》http://mp.weixin.qq.com/s?__bizMzkwNjY1Mzc0Nw&mid2247484339&idx1&sn356300f169de74e7a778b04bfbbbd0ab&chksmc0e47aeff793f3f9a5f7abcfa57695e8944e52bca2de2c7a3eb1aecb3c1e6b9cb6abe509d51f&scene21#wechat_redirect 《Java代码审…

凸优化学习(3)——对偶方法、KKT条件、ADMM

&#x1f345; 写在前面 &#x1f468;‍&#x1f393; 博主介绍&#xff1a;大家好&#xff0c;这里是hyk写算法了吗&#xff0c;一枚致力于学习算法和人工智能领域的小菜鸟。 &#x1f50e;个人主页&#xff1a;主页链接&#xff08;欢迎各位大佬光临指导&#xff09; ⭐️近…

鸿蒙交互事件开发07——手势竞争问题

如果你也对鸿蒙开发感兴趣&#xff0c;加入“Harmony自习室”吧&#xff01;扫描下方名片&#xff0c;关注公众号&#xff0c;公众号更新更快&#xff0c;同时也有更多学习资料和技术讨论群。 1、背景 在文章鸿蒙交互事件开发05——常用的6种手势类型中&#xff0c;有朋友留言…

C语言自定义类型-联合与枚举

在之前的文章中&#xff0c;我们学到了结构体类型&#xff0c;而结构体其实归属于一个大类——自定义类型。那么今天我们就继续讲解关于自定义类型的知识~ 一、类型命名关键字-typedef typedef的作用其实就是标题的意思——为一种类型赋予新的名字。 ① typedef在变量中的应…

Java【集合】

一、集合的概述 集合建立在数组基础上&#xff0c;主要位于java.util包中&#xff0c;用来存储Java类对象&#xff0c;并且可以实现各种数据结构。 集合大小可以改变&#xff0c;可以存放不同数据类型数据。集合不能存放基本类型数据&#xff0c;只能存放引用数据类型数据。集…

力扣题解2848

大家好&#xff0c;欢迎来到无限大的频道。 今日继续给大家带来力扣题解。 题目描述&#xff08;简单&#xff09;&#xff1a; 与车相交的点 给你一个下标从 0 开始的二维整数数组 nums 表示汽车停放在数轴上的坐标。对于任意下标 i&#xff0c;nums[i] [starti, endi] &…

中考全国45套(全国教育发达地区中考试卷)

文章目录 获取方式 为什么选择这份资源&#xff1f; 权威性与全面性&#xff1a;我们精心搜集了全国教育发达地区的最新中考试卷&#xff0c;确保每一套试卷都代表了该地区的教学水平和考试趋势。这不仅涵盖了丰富的知识点&#xff0c;还融入了各地独特的命题风格&#xff0c;让…

2020ICPC上海 D - Walker M - Gitignore

D: 首先显然要二分,判断当前二分的mid时间下是否能满足走满0~n 枚举所有情况,这里按照左,右起点p1,p2分别讨论 p1向左 p2向左(以下向左和向右都代表向左或者向右到墙,而不代表初速度方向)&#xff0c;只需要计算p1或者p2反弹之后还能走距离n就是合法 p1向左 p2向右&#xff…

3.4.2 __ipipe_init_early之fixup_percpu_data()

点击查看系列文章 》 Interrupt Pipeline系列文章大纲-CSDN博客 3.4.2 __ipipe_init_early之fixup_percpu_data() 这个函数只有在CPU是SMP对称多core的情况下&#xff0c;才会真正运作&#xff0c;否则就是个空函数。 #ifdef CONFIG_SMPstatic inline void fixup_percpu_data…