2.Python学习:数据类型和变量

1.标识符命名规则

  • 只能由数字、字母、下划线组成
  • 不能以数字开头
  • 不能是关键字(如class等python内部已经使用的标识符)
  • 区分大小写
    查看关键字:
print(keyword.kwlist)

在这里插入图片描述

2.数据类型

2.1常见数据类型

2.1.1Number数值型

整数int, 比如 3
小数float(也叫浮点数) ,比如 6.5
复数complex

2.1.2字符串String --不可变

(1)单引号或双引号包围的一串字符。 比如 ‘你好’
(2)三对单(双)引号:用来定义多行字符串

str='''
hi 
你好
'''

在这里插入图片描述
(3)如果字符串内容需要打印引号–使用转义字符"

print("hi,\"TOM\"")

在这里插入图片描述
(4)单引号中出现单引号,会报错,可以用双引号将单引号包起来或者使用转义’
双引号同理

str2="It's ok"
print(str2)
str1='It\'s ok' # 输出It's ok

在这里插入图片描述

(5)字符串连接:str1+str2

str1='hi'
str2='Tom'
print(str1+" "+str2)

在这里插入图片描述

(6)字符串重复输出:*

str1='aa'
print(str1*2)

在这里插入图片描述
(7)输出换行符

print(r'\n')# 第一种加r,表示后边的所有转义符均不生效
print('\\n')# 第二种加\,表示后边的\n无特殊意义
# 第三种,当表示路径时,可以用正斜杠/note,代替\note,D:/note.txt

在这里插入图片描述
(8)字符串的下标,也就是索引,是字符串种每个字符的编号,可以快速找到对应的数据

  • 从0开始,最大下标是字符串长度-1,可以使用负数下标,最后一位是-1,倒数第二位是-2
  • 字符串是不可变对象,不可修改某一位的值
    在这里插入图片描述
str1="abcdefg"
print(str1[6])
print(str1[-1])
str1[0]='A'# 报错

在这里插入图片描述
(9)字符串的切片左闭右开,切片为新对象,不改变原有的字符串的值
切片是按照一定的索引位置和
步长省略默认步长是1,接口自动化一般步长为1,步长可以为负数(表示从后往前取)
切片终止值与下标最大数无关
步长

str1="konwledge is power"
slice1=str1[0:9]
print(slice1)#输出konwledge
slice3=str1[:9:]#起始省略,从0开始
print(slice3)#konwledgstr1="konwledge is power"
slice1=str1[0:9:2]
print(slice1) #输出knldestr1="konwledge is power"
slice1=str1[13:18]
slice2=str1[-5:]#当终止下标不写时,表示从起始下标开始,后边的值全取
print(slice1)# powerslice2=str1[::-1]
print(slice2)#rewop si egdelwnok 倒着取slice3=str1[8::-1]
print(slice3)#egdelwnok 只写起始,不写终止,倒着全取
2.1.3 列表list–可变

列表是一种序列类型,由若干个元素组成,元素之间有先后顺序关系
(1)列表中的元素可以是任意对象

list1=[1,'abc',[10,20],(10,20),{'name':'rose'}]
print(list1)

在这里插入图片描述
(2)列表list可以修改元素,下标索引从0开始

list1=[1,'abc',[10,20],(10,20),{'name':'rose'}]
print(list1)
list1[0]=2
print(list1)

在这里插入图片描述
(3)列表元素新增append(),只能添加元素到列表末尾

list2=[1,2]
list2.append(3)
print(list2)

在这里插入图片描述
(4)添加元素到指定列表位置insert(index,value),当index过大时,就相当于添加到末尾,当index为负数时,就相当于加到首位

list3=[1,2]
list3.insert(0,3)
print(list3)

在这里插入图片描述
(5)列表的拼接extend(),会改变list1的值
在这里插入图片描述

list1=[1,2]
list2=[3,4]
list3='abc'
list2.extend(list1)# 3,4,1,2
list2.extend(list3)# 3,4,1,2,a,b,c
print(list2)

在这里插入图片描述
(6)列表删除pop()
不写参数,删除最后一位,写参数,删除指定位置的值

list1=[1,2,3,4]
list1.pop()# 不写参数
print(list1)# 1 2 3list1=[1,2,3,4]
list1.pop(2)# 写参数,删除指定位置的值
print(list1)# 1 2 4

在这里插入图片描述
(7)列表删除指定值remove()
没有指定值就会报错
在这里插入图片描述

list1=[1,2,3,4]
list1.remove(2)# 或者list1.remove(list1[1])
print(list1)

在这里插入图片描述
(8)列表删除,del–关键字删除

list1=[1,2,1,2,2,3,4]
del list1[0]
print(list1)
del list1#整个list1列表直接删除,包括变量名
print(list1)#会报错NameError: name 'list1' is not defined

在这里插入图片描述
(9)列表的切片
在这里插入图片描述
步长为负数,起始大于终止,左开右闭

list1=[1,2,3,4,5,6,7,8,9]
slice1=list1[5:8]
slice2=list1[-4:-1]
print(slice1)# [6, 7, 8]
print(slice2)#[6, 7, 8]
slice3=list1[-5:-8:-1]
slice4=list1[4:1:-1]
print(slice3)#[5, 4, 3]
print(slice4)#[5, 4, 3]

列表切片会生成一个新的对象,不改变原有列表的值

list1=[1,2,3,4,5,6,7,8,9]
list1_slice=list1[:]#起始和终止不写,表示全切
print(id(list1))# id(对象)得到对象在内存中的编号
print(id(list1_slice))

在这里插入图片描述

2.1.4 元组–不可变

在这里插入图片描述

tuple1=(1,2,'a','b')
print(tuple1)

在这里插入图片描述
如果元组中只有一个元素,则需要额外加一个逗号,否则会被系统认为不是元组类型

tuple1=(122)
print(type(tuple1))
tuple1=(122,)
print(type(tuple1))

在这里插入图片描述
如果元组中的元素包含是子列表,则子列表的值可以修改

tuple1=(1,2,'a','b',[1,2,3])
tuple1[4][0]=111
print(tuple1)

在这里插入图片描述

2.1.5 布尔值

有两个值:
True为真,用1表示
False为假,用0表示
布尔表达式:运用比较运算符进行比较的式子,运算结果为布尔值

==判断为恒等 print(1==2)#False
!=为不相等
还有>,>=,<,<=进行比较判断#print(10>9)#True

逻辑运算:与或非
and:A and B,AB全为真,结果为真;AB有一个为假,结果为假
or:A or B,AB全为假,结果为假;AB有一个为真,结果为真
not:非,非真即假,非假即真
优先级:not>and>or
短路与:第一个为假,则全部为假
短路或:第一个为真,则全为真

print(1>2)#False
print('a'>'A')#True,字符串比较先看第一位,首位相同向后继续看,按照ASCII码97>65
print(True+1)#可以参与运算print(True and 10)#10
print(False and 10)#False 短路与print(1>2 or 10>9) #True
list1=[1,2,3,[4,5]]
print(1 in list1)# True
print(1 not in list1)# False
print(5  in list1)#False
print(5 in list1[3])#True
2.1.6字典dict

比如 {1:‘mike’, 2:‘jack’}
注意:Python语言还可以 自己定义数据类型

2.2 数据类型转换

int():将对象转为int型,被转的对象本身里边是数字’2’,‘33’,如果是‘app’就不能转,会报错
str():将对象转为str型

a='2'
b=3
print(a+b)# 报错
print(int(a)+b)# 输出5
print(a+str(b))#输出23

3.变量-某个对象的名字

  • 变量名=值(赋值)
a=10
  • 交换两个变量的值
a=10
b=20
a,b=b,a
print(a,b)

在这里插入图片描述

  • 可以连续赋值,但要保证变量个数与数值个数相同
a,b,c=1,2,3
print(a,b,c)

在这里插入图片描述

  • 赋值可以使用sum+=1,sum-=1的写法,但python没有i++,i–的写法
sum=1
sum+=2
print(sum) //sum=3

4.运算符

  • 加法(+)、减法(-)、乘法(*)、除法(/取整,%取余)
  • 次方(10**3–10的三次方):
data=10
print(data**2)

在这里插入图片描述

  • 成员运算符:in 在里边,not in 不在里边
str1='hi'
print('hi' in str1)
print('hi' not in str1 )

在这里插入图片描述

5.type函数

Python解释器 内置了 type函数,可以用来查看数据对象的类型

Python解释器 内置了 type函数,可以用来查看数据对象的类型

在这里插入图片描述

6.拷贝

6.1.浅拷贝

浅拷贝生成新对象,但列表中的子列表仍然是同一对象
在这里插入图片描述

(1)要求将listA中的1改为11,但保留原有的值

import copylistA=[1,2,3,4]
listB=copy.copy(listA)
listA[0]=11
print(listA)
print(listB)

在这里插入图片描述
(2)要求修改接口A的子列表的第0位的值,改为98,不可以改变接口B的值

import copy
listA=[100,200,300,[400,500]]
listB=copy.copy(listA)
listA[3][0]=98
print(listA)
print(listB)

在这里插入图片描述
可以看到并不满足需求,B的子列表的值仍然被改变了
为了达到要求,可以使用深拷贝
(3)全切片相当于浅拷贝

listA=[100,200,300,[400,500]]
listB=listA[:]
listA[0]=98
listA[3][0]=98
print(listA)
print(listB)

在这里插入图片描述

6.2深拷贝

深拷贝:列表和子列表都是新对象
在这里插入图片描述


import copy
listA=[100,200,300,[400,500]]
listB=copy.deepcopy(listA)
listA[3][0]=98print(listA)
print(listB)

在这里插入图片描述

7.条件判断

7.1条件语句

if: 如果条件满足,执行;若不满足,不执行
else: if可以搭配else,若满足则执行if内的语句,否则执行else语句
**if…elif:**多分支,只执行其中一个分支,其他分支不再执行

if 2>1:print("执行语句")

在这里插入图片描述

if 1>1:print("执行语句")
else:print("else语句")

在这里插入图片描述
用户输入分数,大于等于90打印优秀,大于等于60及格,小于60,不及格

#
score=input("请输入一个数字:")#从键盘读取用户输入,返回值是str型
if score.isdigit():#判断字符串对象是否是纯数字,返回bool型score=int(score)if score>=90:print('优秀')elif score>=60:print('及格')else:print('不及格')
else:print("您输入的不是整数")

在这里插入图片描述

7.2条件语句的嵌套

第一层满足的情况下,再判断第二层

year=input("请输入年份:")
if year.isdigit():year=int(year)if year%400==0:print("是闰年")elif year%4==0:if year%100!=0:print("是闰年")else:print('不是闰年')
else:print("您输入的不是整数")

在这里插入图片描述

8.读取文件

8.1文件的读取文本文件with open

在这里插入图片描述
在这里插入图片描述
(1)read()

filepath="D:/codeZM/AutoDemo/untitled/fileTmp/note.txt"
with open(filepath) as file1:print(file1.read())

在这里插入图片描述
(2)readline()读取第一行

filepath="D:/codeZM/AutoDemo/untitled/fileTmp/note.txt"
with open(filepath) as file1:print(file1.readline())

在这里插入图片描述
(3)readlines()读取文件内容,返回值是列表,每行是列表中的一个元素,有换行符

filepath="D:/codeZM/AutoDemo/untitled/fileTmp/note.txt"
with open(filepath) as file1:print(file1.readlines())with open(filepath) as file1:for one in file1.readlines():print(one)

在这里插入图片描述
在这里插入图片描述
(4)read().splitlines()读取返回列表,每行是列表中的一个元素,但没有换行符

filepath="D:/codeZM/AutoDemo/untitled/fileTmp/note.txt"
with open(filepath) as file1:print(file1.read().splitlines())

在这里插入图片描述

绝对路径和相对路径

在这里插入图片描述

8.2文件的写入

在这里插入代码片

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java集合(2)

目录 一. Map接口下的实现类 1. HashMap 1.1 HashMap常用方法 2. TreeMap 2.1 TreeMap常用方法 3. Hashtable 3.1 Hashtable常用方法 4.Map集合的遍历 4.1 根据键找值 4.2 利用map中的entrySet()方法 二.Collections类 1.Collections类中的常用方法 三. 泛型 1. 为什…

uniapp 去掉小数末尾多余的0

文章目录 在uniapp或者一般的JavaScript环境中&#xff0c;要去掉小数末尾的0&#xff0c;可以使用以下几种方法&#xff1a; 使用parseFloat()函数 let num 123.4500; let result parseFloat(num); console.log(result); // 输出: 123.45字符串处理 将数字转换为字符串&am…

Excel中按列的首行字母顺序,重新排列(VBA脚本)

排序前 要求对4列数据按照第一行abcd的顺序排列 VB脚本如下&#xff1a; 要使用这个脚本&#xff0c;请按照以下步骤操作&#xff1a; 打开Excel&#xff0c;然后按下 Alt F11 打开VBA编辑器。在VBA编辑器中&#xff0c;选择“插入” > “模块”&#xff0c;在打开的模块…

C#——使用ini-parser第三方操作ini文件

使用ini-parser第三方操作ini文件 IniParser - 一个轻量级的.NET类库&#xff0c;用于读写INI文件。 安装 在NuGet程序包中下载IniParser第三方 使用IniParser第三方操作Ini文件 读取 // 初始化解析器var parser new FileIniDataParser();// 读取INI文件string iniFilePat…

Lambda架构

1.Lambda架构对大数据处理系统的理解 Lambda架构由Storm的作者Nathan Marz提出&#xff0c;其设计目的在于提供一个能满足大数据系统关键特性的架构&#xff0c;包括高容错、低延迟、可扩展等。其整合离线计算与实时计算&#xff0c;融合不可变性、读写分离和复杂性隔离等原则&…

图片管理新纪元:高效批量横向拼接图片,一键生成灰色艺术效果,打造专业视觉体验!

在数字时代&#xff0c;图片已成为我们生活和工作中不可或缺的一部分。但面对海量的图片&#xff0c;如何高效地进行批量管理、拼接和调色&#xff0c;成为许多人面临的难题。今天&#xff0c;我们为您带来了一款颠覆性的图片管理工具&#xff0c;让您轻松实现图片批量横向拼接…

Linux 查看磁盘是不是 ssd 的方法

lsblk 命令检查 $ lsblk -d -o name,rota如果 ROTA 值为 1&#xff0c;则磁盘类型为 HDD&#xff0c;如果 ROTA 值为 0&#xff0c;则磁盘类型为 SSD。可以在上面的屏幕截图中看到 sda 的 ROTA 值是 1&#xff0c;表示它是 HDD。 2. 检查磁盘是否旋转 $ cat /sys/block/sda/q…

使用 PCA 可视化数据的分类能力

使用 PCA 探索数据分类的效果&#xff08;使用 Python 代码&#xff09; 「AI秘籍」系列课程&#xff1a; 人工智能应用数学基础人工智能Python基础人工智能基础核心知识人工智能BI核心知识人工智能CV核心知识 主成分分析 (PCA) 是数据科学家使用的绝佳工具。它可用于降低特征…

[VN2020 公开赛]strangeCpp

每天水一道题计划&#xff0c;打卡第三天 看着挺奇怪的&#xff0c;然后想动调&#xff0c;出现了一点错误 沉默&#xff0c;反思&#xff0c;不解&#xff0c;疑惑 然后观察&#xff0c;最开始有一堆数据&#xff0c;不知道干嘛的 对welcome中间的数据交叉引用发现 重点应该…

leetcode判断二分图

判断二分图 图的问题肯定要用到深度优先遍历或者广度优先遍历&#xff0c;但又不是单纯的深度优先遍历算法和广度优先遍历算法&#xff0c;而是需要在遍历的过程中加入与解决题目相关的逻辑。 题干中说了&#xff0c;这个图可能不是连通图&#xff0c;这个提示有什么作用呢&a…

Mysql慢日志、慢SQL

慢查询日志 查看执行慢的SQL语句&#xff0c;需要先开启慢查询日志。 MySQL 的慢查询日志&#xff0c;记录在 MySQL 中响应时间超过阀值的语句&#xff08;具体指运行时间超过 long_query_time 值的SQL。long_query_time 的默认值为10&#xff0c;意思是运行10秒以上(不含10秒…

用C#调用Windows API向指定窗口发送按键消息详解与示例

文章目录 1. 按键消息的定义及功能2. 引入所需的命名空间3. 定义Windows API函数4. 定义发送消息的方法5. 获取窗口句柄6. 调用API发送按键消息7. 使用示例注意事项总结 在C#中调用Windows API向指定窗口发送按键消息是一种常见的操作&#xff0c;这通常用于自动化脚本、游戏辅…

讲个SystemVerilog随机约束小坑

正文 记录个在写SystemVerilog随机约束时遇到的一个小坑&#xff0c;如果没有认真去查看随机结果是否符合预期&#xff0c;还真不容易发现。 为了方便讲述&#xff0c;写了如下示例代码。类cl_a里有个随机变量aa&#xff0c;初始值为222。在module top里对类cl_a例化并进行约…

短链接学习day2

用户敏感信息脱敏展示&#xff1a; RequestParam 和 PathVariable的区别 注解是用于从request中接收请求的&#xff0c;两个都可以接收参数&#xff0c;关键点不同的是RequestParam 是从request里面拿取值&#xff0c;而 PathVariable 是从一个URI模板里面来填充。 PathVari…

[leetcode hot 150]第一百一十七题,填充每个节点的下一个右侧节点

题目&#xff1a; 给定一个二叉树&#xff1a; struct Node {int val;Node *left;Node *right;Node *next; } 填充它的每个 next 指针&#xff0c;让这个指针指向其下一个右侧节点。如果找不到下一个右侧节点&#xff0c;则将 next 指针设置为 NULL 。 初始状态下&#x…

数据结构试卷(一)王彬

一、单选题&#xff08;每题 2 分&#xff0c;共20分&#xff09; 栈和队列的共同特点是( )。 A.只允许在端点处插入和删除元素 B.都是先进后出 C.都是先进先出 D.没有共同点 用链接方式存储的队列&#xff0c;在进行插入运算时( ). A. 仅修改头指针   …

深入理解C# log4Net日志框架:功能、使用方法与性能优势

文章目录 1、log4Net的主要特性2、log4Net框架详解配置日志级别 3、log4Net的使用示例4、性能优化与对比5、总结与展望 在软件开发过程中&#xff0c;日志记录是一个不可或缺的功能。它可以帮助开发者追踪错误、监控应用程序性能&#xff0c;以及进行调试。在C#生态系统中&…

STM32-LED和蜂鸣器

本内容是基于江协科技STM32视频整理而得。 1. LED和蜂鸣器 1.1 LED和蜂鸣器简介 LED&#xff1a;发光二极管&#xff0c;正向导通点亮&#xff0c;反向通电不亮 有源蜂鸣器&#xff1a;内部自带振荡源&#xff0c;将正负极接上直流电压即可持续发声&#xff0c;频率固定。 无…

Linux服务器升级openssh9.8最新版全过程,及遇到问题处理

前言&#xff1a;由于2024年7月1日&#xff0c;openssh发布了最新版9.8&#xff0c;所以服务器需要升级一下&#xff0c;特此做个详细记录&#xff1a; 由于下载最新版openssh9.8&#xff0c;需要将openssl也一并进行升级 一、下载openssh最新版本与openssl对应版本&#xff…

易保全推动区块链应用与AI融合创新发展

数字化时代&#xff0c;区块链和人工智能技术作为当下两大“黑科技”&#xff0c;两者的深度结合&#xff0c;正在为企业数字化转型带来前所未有的机遇。 易保全作为国内权威的电子数据存证保全机构&#xff0c;积极探索两者的融合之道&#xff0c;将区块链的去中心化、不可篡…