python的数据类型

目录

一、数据类型

1.1变量与常量

1.1.1变量

 1.1.2常量

1.2字符串类型

1.3整数与浮点数

1.4布尔值:True/False

1.5输入与输出

1.6字符串格式化


一、数据类型

变量类型

整数int(4字节,会自动扩容)、浮点数float(8字节)、布尔类型bool(一个字节)、字符串(变长)可使用len求长度、其他

空值:None,不是布尔类型,而是NoneType。

1.1变量与常量

变量:在程序运行过程中,值会发生变化的量

常量:在程序运行过程中,值不会发生变化的量

无论是变量还是常量,创建时都会在内存中开辟一块空间,用于保存它的值。

  • 动态语言类型:程序运行中,变量类型会发生改变(修改变量)
  • 静态语言类型:程序运行过程中,变量类型始终不发生变化,如C++/java
  • 二者的判断关键:运行中,变量类型是否发生变化

Python 中,由于python的动态语言特性,故变量和常量都不需事先声明类型:(age=18)

静态语言:C++、Java、Golang,需要事先声明类型:(int age,string name)

1.1.1变量

变量可以指定不同的数据类型,从而决定其在内存中的位置(由解释器根据数据类型分配)。

(1)赋值“=”和比较“==”

首次使用 = 相当于对变量进行赋值(初始化),后续再对变量使用 = 相当于修改变量的内容

age = 18  #赋值
age == 18  #比较,判断age是否为18,返回值True/False

counter = 100 # 赋值整型变量
miles = 1000.0 # 浮点型
name = "John" # 字符串

(2)变量在使用前必须赋值,才会被创建,若不赋值,则抛出未定义的异常。

 (3)赋值方式:单个、多个、先计算后赋值、分别赋值

age = 18  #单个赋值
a = b = c = 2   #多个赋值
d = 17+2  #先计算后赋值
a, b, c = 1,2,3   #分别赋值

(4) 变量赋值的含义 

name = "python"

1.内存中创建了一个字符串对象"python"

2.内存中创建一个变量name,并将其指向"python"

3.把一个变量a赋值给另一个变量b,意味着将变量b指向变量a所指向的数据

4.若继续对a赋值,a内存地址会改变,而b不会改变。Python中的一切都是对象,变量是对象的引用! 

  • 执行a = ‘Jack’,解释器创建字符串‘Jack’对象和变量a,并把a指向‘Jack’对象;

  • 执行b = a,解释器创建变量b,并且将其指向变量a指向的字符串‘Jack’对象;

  • 执行a = ‘python’,解释器创建字符串‘Tom’对象,并把a改为指向‘Tom’对象,与b无关

 

a = "Jack"
b = a  #a赋值给b ,创建变量b
print(b)   #输出"Jack"
id(a) == id(b)  #输出true    id()可查看内存地址  

a = "python"   #a的内存地址发生改变
id(a) == id(b)  #输出false   

 1.1.2常量

常量(不变的量),python中全部大写的变量名即为常量

常量常放于代码最上端,做全局使用

PI = 3.1415926  #常量圆周率

1.2字符串类型

 字符串或串(String)是由数字、字母、下划线组成的一串字符。

若有字符串嵌套,内外分别用单双区分就行了:(三引号使用同上,三者关系等效),常使用三引号创建多行字符串

b = "'hello' python!!!"
c =  'hello "python"'
print(b,c)

name_1 = 'Jack'  # 单引号
name_2 = "Jack"  # 双引号
name_3 =  '''Jack''' # 三个单引号
name_4 = """Jack"""  # 三个双引号
name_1 == name_2 == name_3 == name_4

(1)python的字串列表有2种取值顺序:

  • 从左到右索引默认0开始的,最大范围是字符串长度少1
  • 从右到左索引默认-1开始的,最大范围是字符串开头

e985c70bd2994d5180a95a24b6c86195.png

(2)字符串截取

 截取字符串字串 [头下标:尾下标 ]   前闭后开

加号(+)是字符串连接运算符(拼接功能,不同数据类型不能进行拼接),星号(*)是重复操作

28b2833b33cf4903b208dfba652ef4e8.png

str = 'Hello World!' 
print str           # 输出完整字符串H
print str[0]        # 输出字符串中的第一个字符 H
print str[2:5]      # 输出字符串中第三个至第六个之间的字符串 llo
print str[2:]       # 输出从第三个字符开始的字符串 llo world!
print str * 2       # 输出字符串两次  Hello World!Hello World!
print str + "TEST"  # 输出连接的字符串Hello World!TEST

列表截取可以接收第三个参数,参数作用是截取的步长 [ 1: 4 :2 ] 步长为2

6a0a94fa48674965b24960f4f4af8622.png

(3)常用方法

msg = "       python编程       "

1)去除首尾空格:

msg.lstrip()  # 去除左边空格
msg.rstrip()  # 去除右边空格
msg.strip()   # 去除左右两边空格

2)判断字符串是否以某字符串开头startswith/结尾endswith

msg = "Hello, Python"
msg.startswith("Hello")   #True
msg.startswith("hello")   #False

3)格式化字符串

name = input()  #输入字符串表示名字

print(f'I am {name} and I am studying Python in Nowcoder!')  
print('I am %s and I am studying Python in Nowcoder!'%name)

4)字符串分割  (多个字符串分隔为字符串列表)

languages = "Python,Java,Golang"
languages.split(",")    #['Python', 'Java', 'Golang']

1.3整数与浮点数

Python 支持的数字类型有三种:整数、浮点数和复数。

(1)整数int:

是正或负整数,不带小数点。

表示数字的时候,还可用八进制或十六进制来表示:

  • 十六进制:用0x前缀和0-9,a-f表示,例如:0xff00,0xa5b4c3d2。

  • 八进制:用0o前缀和0-7表示,例如0o12

a = 0x0001 # 十六进制 1
b = 0o01  # 八进制  1

(2)常用方法

四舍五入:如round(3.14)=3,round(3.81) = 4

取余:a // b

取整:int(3.14) = 3


1.4布尔值:True/False

首字母必须大写

布尔类型的转换:

下面值经过 bool 转换后是假值:

  • 0、0.0、-0.0

  • None:这个后面会讲到

  • 空字符串、空列表、空元组、空字典

这些会转换成真值:

  • -1、1或者其他非0数值

  • 所有非空字符串,包括 "False"

  • 所有非空字典、非空列表、非空集合,非空元组

布尔运算:

  • 布尔类型可以进行 and、or和 not运算
  • and 运算是与运算,只有所有都为True,and运算的结果才是True:

空置:None

空值None是Python里一个特殊的值,None不能理解为 0,因为0是整数类型,而None是一个特殊的值。

1.5输入与输出

对数据内置的类型进行转换,只需要将数据类型作为函数名即可。这些函数返回一个新的对象,表示转换的值。

  (1)input读入一个数据和类型输出

a = int(input())   #input函数输入的是字符串类型,若只要输入整数,将其转化为int型即可
print(a)
print(type(a))

(2)保留浮点数几位小数输


b = float(input())

print('%.2f'%b)  #格式化输出:保留数据两位小数
print('{:.2f}'.format(b))

(3)整数转换为浮点数

方法一:
a=float(input())
print('{:.1f}'.format(a), type(a), sep = '\n')

方法二:
a=float(input())
print('%.1f'%a, type(a), sep = '\n')

方法三:
a=float(input())
print(f'{a :.1f}', type(a), sep = '\n')

方法四:
a = int(input())
b = float(a)
print(b)
print(type(b))

1.6字符串格式化

主要有三种方式:

  1. 使用 % 进行格式化

  2. 使用 format 函数进行格式化

  3. 使用 f-string 进行格式化

(1) % 进行格式化

  • %s 表示这个位置接的是一个字符串变量
  • %d 表示这个位置接的是一个整型变量
name = "Jack"
age = 18
print("我的名字是: %s,今年 %d 岁" %(name, age))   #我的名字是: Jack,今年 18 岁

(2) format 函数进行格式化

字符串中,使用 {} 进行占位,然后在字符串后跟上 .format() 函数,这个函数的参数就是我们要往字符串中填充的变量。format 函数会依次填充,比如第一个 {} 会取到第一个参数 name,第二个 {} 会取到第二个参数 age

name = "Jack"
age = 18
print("我的名字是:{}, 今年 {} 岁".format(name, age))   #我的名字是:Jack, 今年 18 岁
print("我的名字是:{0}, 今年 {1} 岁".format(name, age))   #同上,带上索引,不容易看错
print("我的名字是:{name}, 今年 {age} 岁".format(name=name, age=age))

(3)使用 f-string 进行格式化

 Python 3.6 才支持的写法,只要你在字符串前面加一个 f,开启 f-string ,就可以在字符中写入变量。

name = "Jack"
age = 18
print(f"我的名字是:{name}, 今年 {age} 岁")  #我的名字是:Jack, 今年 18 岁

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值