Python入门学习——Day2-变量和数据类型

一、Python 变量

在Python中,变量用于保存数据,方便程序对数据的处理和操作。下面是关于Python变量的一些重要概念:

变量命名规则

  • 变量名由字母、数字和下划线组成。
  • 变量名可以以字母或下划线开头,但不能以数字开头。
  • 变量名区分大小写,例如"age"和"Age"是不同的变量。
  • 变量名应具有描述性,有助于代码的可读性。

变量的赋值: 在Python中,变量的赋值通过使用等号(=)进行。

name = "Alice"
age = 25

变量类型推导: Python是一种动态类型语言,不需要在变量声明时指定变量类型。变量的类型会根据赋给它的值自动推导出来。

name = "Alice"       # 字符串类型
age = 25            # 整数类型
salary = 1000.50     # 浮点数类型
is_student = True    # 布尔类型

变量的重新赋值: 在Python中,变量的值可以被重新赋值。当为变量赋予新值时,它会丢失之前的值,并被新值替代。

name = "Alice"
name = "Bob"   # 变量"n"的值从"Alice"被重新赋值为"Bob"

变量的多重赋值: Python允许使用多重赋值的方式同时给多个变量赋值。

x = y = z = 0   # 将变量"x"、"y"和"z"同时赋值为0
a, b, c = 1, 2, 3   # 将变量"a"、"b"、"c"分别赋值为1、2、3

变量的删除: 在Python中,可以使用del关键字来删除一个变量。

x = 10
del x   # 删除变量"x"

Python中的变量是动态的,可以根据需要赋予不同的值。变量的使用使得程序更具灵活性和可扩展性。

二、Python 数据类型

Python 标准数据类型:

Python3 中有六个标准的数据类型:
1. Number(数字)
2. String(字符串)
3. List(列表)
4. Tuple(元组)
5. Set(集合)
6. Dictionary(字典) 

Python3 的六个标准数据类型中:
不可变数据(3 个):Number(数字)、String(字符串)、Tuple(元组)
可变数据(3 个):List(列表)、Dictionary(字典)、Set(集合)。
这里我就简单介绍前面两个: 

1. Number(数字):
Python3 支持 int、float、bool、complex(复数)
在Python 3里,只有一种整数类型 int,表示为长整型,没有 python2 中的 Long。
像大多数语言一样,数值类型的赋值和计算都是很直观的。
内置的 type() 函数可以用来查询变量所指的对象类型。 

a, b, c, d = 10, 3.1415926, False, 20+3j
...print(type(a),type(b),type(c),type(d))
<class 'int'> <class 'float'> <class 'bool'> <class 'complex'>

 2. String(字符串):
电子计算机或无线电通信中字母、数字和各种符号的统称。由数字、字母、下划线组成的一串字符。
python中字符串的定义:
在引号内按照从左到右的顺序依次包含一个个字符,引号可以是单引号、双引号、三引号,如:

name = '大海'name1 = "大海1"info = '''在苍茫的大海上
狂风.....
'''

字符串格式化输出:
程序中经常会有这样场景:要求用户输入信息,然后打印成固定的格式,比如要求用户输入用户名和年龄,然后打印如下格式:My name is xxx,my age is xxx.这就用到了占位符,如:%s、%d。%s %s占位符:

# %s 占位符 可以接受字符和数字 全能
name = input('输入名字')
# 一个值的话直接放到%后面
print('My name is %s'%name)

%d占位符:

# %d只能接受数字 有局限性
# 这样只能输入数字了
age = input('输入年龄')
age = int(age)
print(type(age))
print('my age is %s'%age)

多个占位符的使用:

name = input('输入名字')
age = input('输入年龄')
# 多个值的话直接放到%后面要有括号
print('My name is %s,my age is %s'%(name,age))
# 错误演示 输入的是一个字符串 %d无法接收
# print('My name is %d,my age is %d'%(name,age))

简写:

name = input('输入名字')
age = input('输入年龄')
#  f'其他字符{变量名}'
print(f'my name is {name},my age is {age}')

3. List(列表):
List(列表) 是 Python 中使用最频繁的数据类型。

Python 中使用最频繁的数据类型。
列表可以完成大多数集合类的数据结构实现。列表中元素的类型可以不相同,它支持数字,字符串甚至可以包含列表(所谓嵌套)。
列表是写在方括号 [] 之间、用逗号分隔开的元素列表。
和字符串一样,列表同样可以被索引和截取,列表被截取后返回一个包含所需元素的新列表。
列表截取的语法格式如下:

变量[头下标:尾下标]

在[]内用逗号分隔开多个任意类型的值:

L = ['dahai',1,1.2,[1.22,'小海']]
#    0       1 2    3
#                   0     1
print(L)
print(type(L))

 列表取值:

# # 索引从0开始  相当于我们书的页码
print(L[0])
print(L[1])
print(L[0][0])
# 反向取
print(L[-1])
print(L[-1][1])
print(L[-1][1][0])
dahai=L[0]
print(dahai)

列表内元素修改:

L[0]= '红海'
print(L)
print(L[0])
honghai=L[0]
print(honghai)

4. Dict(字典):
记录多个key:value值,优势是每一个值value都有其对应关系/映射关系key,而key对value有描述性的功能。
在{}内用逗号分隔开多个key:value元素,其中value可以是任意的数据类型,而key通常应该是字符串类型

info = {'name':'大海','age':18}

简单使用:

# 简单使用
# 通过key进行取值
print(info['name'])
print(info['age'])

列表和字典区别:

# 列表是依靠索引
# 字典是依靠键值对 # key描述性的信息

5. Tuple(元组):
记录多个值,当多个值没有改的需求,此时用元组更合适。
在()内用逗号分隔开多个任意类型的值:

t = (1,2,'大海',(2,3),['红海',2,3])
#    0 1  2     3     4
#                     0       1 2
print(t)
print(type(t))

元组取值方式和列表一样:

# 简单使用
print(t[0])

前面已经说过,三个不可变的数据,字符串,数字和元组,所以元组里元素是不可改变的,但是元组里的列表是可以改变的。

# 元组里的元素不可改
# t[0]= 5
# t[4] = 2
# 修改元组里的列表
print(t[4])
t[4][0]='黄海'
print(t)

6. Set(集合):
集合的作用是关系运算,定义是在{}内用逗号分开个的多个值。需要注意:
1.元素不能重复(定义不能这样写相同的)
2.集合里面的元素是无序
如:

s = {1,2,3}
print(s)
print(type(s))

基本使用:

s1 = {'a','b','c'}
s2 = {'b','c','d'}
# # 拿2个集合相同的元素 shift + 7交集符号  交集
print(s1 & s2)
# 拿2个集合所有的元素  并集
print(s1 | s2)
# s1 去 抵消它们的交集 差集
print(s1 - s2)
# s2 去 抵消它们的交集 差集
print(s2 - s1)

Python六中标准数据类型已经介绍完了。实际使用中,数据之前存在转换,那么有哪些转换方式呢?

三、Python 数据类型的转换

有时候,我们需要对数据内置的类型进行转换,数据类型的转换,一般情况下你只需要将数据类型作为函数名即可。
Python 数据类型转换可以分为两种:
1. 隐式类型转换 - 自动完成
2. 显式类型转换 - 需要使用类型函数来转换
隐式类型转换:
在隐式类型转换中,Python 会自动将一种数据类型转换为另一种数据类型,不需要我们去干预。以下实例中,我们对两种不同类型的数据进行运算,较低数据类型(整数)就会转换为较高数据类型(浮点数)以避免数据丢失。

num_int = 100
num_flo = 0.345num_new = num_int + num_floprint("datatype of num_int:",type(num_int))
print("datatype of num_flo:",type(num_flo))
print("Value of num_new:",num_new)
print("datatype of num_new:",type(num_new))

运行结果:

datatype of num_int: <class 'int'>
datatype of num_flo: <class 'float'>
Value of num_new: 100.345
datatype of num_new: <class 'float'>

显式类型转换:
在显式类型转换中,用户将对象的数据类型转换为所需的数据类型。我们使用 int()、float()、str() 等预定义函数来执行显式类型转换。
示例代码:

# int() 强制转换为整型:
x = int(1)   # x 输出结果为 1
y = int(2.8) # y 输出结果为 2
# float() 强制转换为浮点型:
x = float(1)     # x 输出结果为 1.0
y = float(2.8)   # y 输出结果为 2.8
# str() 强制转换为字符串类型:
x = str("s1") # x 输出结果为 's1'
y = str(2)    # y 输出结果为 '2'
# 整型和字符串类型进行运算,就可以用强制类型转换来完成:
num_int = 123
num_str = "456"
print("num_int 数据类型为:",type(num_int))
print("类型转换前,num_str 数据类型为:",type(num_str))
num_str = int(num_str)    # 强制转换为整型
print("类型转换后,num_str 数据类型为:",type(num_str))num_sum = num_int + num_strprint("num_int 与 num_str 相加结果为:",num_sum)
print("sum 数据类型为:",type(num_sum))

运行结果:

num_int 数据类型为: <class 'int'>
类型转换前,num_str 数据类型为: <class 'str'>
类型转换后,num_str 数据类型为: <class 'int'>
num_int 与 num_str 相加结果为: 579
sum 数据类型为: <class 'int'>

四、Python 字符串格式化输出

除了前面介绍的占位符,字符串格式化输出也可以使用format函数

"name is:{},age is :{}".format(name,age)

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

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

相关文章

界面控件DevExpress WinForms(v23.2)下半年发展路线图

本文主要概述了官方在下半年&#xff08;v23.2&#xff09;中一些与DevExpress WinForms相关的开发计划&#xff0c;重点关注的领域将是可访问性支持和支持.NET 8。 DevExpress WinForms有180组件和UI库&#xff0c;能为Windows Forms平台创建具有影响力的业务解决方案。同时能…

数据库访问性能优化

目录 IO性能分析数据库性能优化漏斗法则1、减少数据访问&#xff08;减少磁盘访问&#xff09;(1) 正确的创建并使用索引索引生效场景索引失效场景判断索引是否生效--执行计划 2、返回更少数据&#xff08;减少网络传输或磁盘访问&#xff09;(1) 数据分页处理(减少行数)客户端…

python+redis实现布隆过滤器(含redis5.0版本以上和5.0以下版本的两份代码)

布隆过滤器是一种空间效率极高的概率数据结构&#xff0c;用于测试一个元素是否是集合的成员。如果布隆过滤器返回 False&#xff0c;则元素绝对不在集合中。如果返回 True&#xff0c;则元素可能在集合中&#xff0c;但也可能是一个误报。布隆过滤器利用了多个不同的哈希函数对…

字符和字符串的库函数模拟与实现

前言&#xff1a; 相信大家平常在写代码的时候&#xff0c;用代码解决实际问题时苦于某种功能的实现&#xff0c;而望而止步&#xff0c;这个时候库函数的好处就体现出来了&#xff0c;当然个人代码编写能力强的可以自己创建一个函数&#xff0c;不过相当于库函数来说却是浪费了…

Redis进阶 - JVM进程缓存

原文首更地址&#xff0c;阅读效果更佳&#xff01; Redis进阶 - JVM进程缓存 | CoderMast编程桅杆https://www.codermast.com/database/redis/redis-advance-jvm-process-cache.html 传统缓存的问题 传统的缓存策略一般是请求到达 Tomcat 后&#xff0c;先查询 Redis &…

Java文件操作

目录 一、File类概述 1.1 使用案例 二、文件内容的读写 2.1 字符流 2.1.1 读取文件 2.1.2 写入文件 2.2 字节流 2.2.1 读取文件 2.2.2 写入文件 对于Java操作文件&#xff0c;具体详情可以参考Java api文档 中的Java.io.File类 一、File类概述 首先先了解一下File类中常见的属…

Unity 从2018升级为2021之后 IAP(内购插件)报错解决

从老项目升级为2021高版本之后报了个错 大概就是… the type iwindowsiap exists in both unityengine.purchasing.winrtcore, version0.0.0.0, 这种 具体的我也没粘贴全部过来 原因貌似是 PackManger里面的IPA包和项目自带的冲突了 解决方法&#xff1a; 删除项目文件夹下面…

puppeteer常规操作代码段

目录 一、获取界面二维码并打印处理 二、等待某个元素消失后 再进行操作 三、使用puppteer点击搜索框&#xff0c;并输入内容后点击搜索 一、获取界面二维码并打印处理 const puppeteer require(puppeteer);async function findQRCodeByXPath() {const browser await pupp…

leetcode3. 无重复字符的最长子串(滑动窗口 - java)

滑动窗口 无重复字符的最长子串滑动窗口 上期经典 无重复字符的最长子串 难度 - 中等 3. 无重复字符的最长子串 给定一个字符串 s &#xff0c;请你找出其中不含有重复字符的 最长子串 的长度。 示例 1: 输入: s “abcabcbb” 输出: 3 解释: 因为无重复字符的最长子串是 “abc…

代码随想录算法训练营第五十二天 | 300.最长递增子序列,674. 最长连续递增序列,718. 最长重复子数组

代码随想录算法训练营第五十二天 | 300.最长递增子序列&#xff0c;674. 最长连续递增序列&#xff0c;718. 最长重复子数组 300.最长递增子序列674. 最长连续递增序列718. 最长重复子数组 300.最长递增子序列 题目链接 视频讲解 给你一个整数数组 nums &#xff0c;找到其中最…

JDK源码解析-LinkedList

1. LinkedList类 1.1 LinkedList类定义&数据结构 定义 LinkedList是一种可以在任何位置进行高效地插入和移除操作的有序序列&#xff0c;它是基于双向链表实现的。 数据结构 基础知识补充 单向链表&#xff1a; element&#xff1a;用来存放元素 next&#xff1a;用来…

SpringBoot项目(jar)部署,启动脚本

需求 SpringBoot项目&#xff08;jar&#xff09;部署&#xff0c;需要先关闭原来启动的项目&#xff0c;再启动新的项目。直接输入命令&#xff0c;费时费力&#xff0c;还容易出错。所以&#xff0c;使用脚本启动。 脚本 脚本名&#xff1a;start.sh 此脚本需要放置在jar包…

AI文本标注的概念,类型和方法

我们每天都在与不同的媒介&#xff08;例如文本、音频、图像和视频&#xff09;交互&#xff0c;我们的大脑对收集到的信息进行处理和加工&#xff0c;从而指导我们的行为。在我们日常接触到的信息中&#xff0c;文本是最常见的媒体类型之一&#xff0c;由我们交流使用的语言构…

——滑动窗口

滑动窗口 所谓滑动窗口&#xff0c;就是不断的调节子序列的起始位置和终止位置&#xff0c;从而得出我们要想的结果。也可以理解为一种双指针的做法。 leetcode76 class Solution {public String minWindow(String s, String t) {char[] schars s.toCharArray();char[] tc…

微信小程序中的 广播监听事件

定义 WxNotificationCenter.js 文件&#xff1b; /*** author: Di (微信小程序开发工程师)* organization: WeAppDev(微信小程序开发论坛)(http://weappdev.com)* 垂直微信小程序开发交流社区* * github地址: https://github.com/icindy/WxNotificationCenter…

pulsar集群搭建_亲测成功

pulsar集群搭建_亲测成功 单机运行请看: Linux MacBook单机部署Pulsar并开启认证功能 集群组成 搭建 Pulsar 集群至少需要 3 个组件&#xff1a;ZooKeeper 集群、BookKeeper 集群和 broker 集群&#xff08;Broker 是 Pulsar 的自身实例)。这三个集群组件如下&#xff1a; …

【Linux】root和子用户都能执行的命令,sudo无法执行(已解决)

全流程帖子 https://ask.oceanbase.com/t/topic/35604437/7 1.问题 如题&#xff0c;在编译miniob的时候遇到如下错误 [muvm-cnt8:~/code/miniob]$ sudo bash build.sh init build.sh init HEAD is now at 5df3037d Merge branch release-2.1.12-stable-pull into patches-2.…

【2D/3D RRT* 算法】使用快速探索随机树进行最佳路径规划(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

哪些情况需要用到云渲染?原来云渲染有这么多好处!

当前&#xff0c;CG行业发展迅猛&#xff0c;云渲染已成为越来越多的设计师必不可少的工具。在许多情况下&#xff0c;云渲染都能发挥重要的作用。 情况1&#xff1a;项目时间紧急 在当今繁忙的设计行业中&#xff0c;许多设计师需要通宵加班才能完成繁琐的工作。然而&#xf…

使用selenium实现对页面元素的抓取

一、背景介绍 工作中有个需求是需要对某个页面进行监控&#xff0c;但由于要监控页面数据是异步加载的&#xff0c;因此很难从状态码和返回结果层面进行校验。于是乎想到了通过判断页面元素是否存在且显示内容是否正确来达到此目标。调研了一下发现selenium可以实现对这种动态…