0
点赞
收藏
分享

微信扫一扫

第6天:数据类型详解(整型、字符串)

茗越 2022-02-04 阅读 51

2021年12月21 日

文章目录

一、int:整型

1.整数的进制

①二进制

​ 逢二进一,由 0 和 1 两个数字组成,书写时以0b0B开头

bin1 = 0b101
print('bin1Value: ', bin1) #运行结果:bin1Value:5
bin2 = 0B110
print('bin2Value: ', bin2) #运行结果:bin2Value:6

②八进制

​ 逢八进一,由 0~7 共八个数字组成,以0o0O开头。注意,第一个符号是数字 0,第二个符号是大写或小写的字母 O。

oct1 = 0o26
print('oct1Value: ', oct1)  #运行结果:oct1Value:22
oct2 = 0O41
print('oct2Value: ', oct2)  #运行结果:oct2Value:33

③十进制

​ 逢十进一,由 0~9 共十个数字排列组合而成。注意,使用十进制形式的整数不能以 0 作为开头,除非这个数值本身就是 0。

​ int(m):将m转成十进制的int类型

​ float(m):将m转成小数

a = input('11111')
if int (a) == 123:
    pass

pycharm提供三个数字加一个下划线的方式:320_789_777

④十六进制

​ 逢F进一,由 0~9 十个数字以及 A~F(或 a~f)六个字母组成,书写时以0x0X开头

hex1 = 0x45
hex2 = 0x4Af
print("hex1Value: ", hex1)  #运行结果:hex1Value:69
print("hex2Value: ", hex2)  #运行结果:hex2Value:1199

2.进制之间的转换

(1)十进制转换为其它进制

​ ①十进制转二进制

bin(3) #二进制
# '0b11'

​ ②十进制转八进制

oct(9) #八进制
# '0o11'

​ ③十进制转十六进制

hex(17) #十六进制
# '0x11'

(2)其它进制转为十进制

​ 统一使用 int(‘进制符号’,进制阿拉伯数字)**

int('0b11',2)
# 3
int('0o11',8)
# 9
int('0x11',16)
# 17

3.数字分隔符

​ python提供了一种数字分割符以便于方便我们查看,更直观的表达数字。

distance = 595_000_000
print("地球和月球的距离:", distance)
#运行结果:地球和月球的距离: 595000000

4.需要掌握的一个方法int()

​ 在此处,我们需要知道int() ,就是将括号里的内容转化成int类型的数据。

二、string:字符串类型

1.将其它数据类型转成字符型

整型、列表、字典都可以

a = [1, 2, 3]
print(a)
print(type(a))
print(str(a))
print(type(str(a)))
'''运行结果:
[1, 2, 3]
<class 'list'>
[1, 2, 3]
<class 'str'>
'''

b = {'name': '孜孜淑淑'}
print(b)
print(type(b))
print(str(b))
print(type(str(b)))
'''运行结果:
{'name': '孜孜淑淑'}
<class 'dict'>
{'name': '孜孜淑淑'}
<class 'str'>
'''

2.字符型用引号包裹

字符串里想出现引号:单包双或双包单;用转义字符\‘’即可

\ 还可以用来换行

3.字符串可以相加相乘

4.序列

​ 所谓序列,指的是一块可存放多个值的连续内存空间,这些值按一定顺序排列,可通过每个值所在位置的编号(称为索引)访问它们。

①序列索引(下标)

​ 序列中,每个元素都有属于自己的编号(索引)。从起始元素开始,索引值从 0 开始递增。

下标越界:索引超出了界线

②序列类型:字符串、列表、元组、集合

③切片(次重点):字符串和列表通用

a[开始位置:结束位置:步长]

​ a[开始位置] 取一个元素,字符

sname[start : end : step]

**sname:**表示序列的名称
**start:**表示切片的开始索引位置(包括该位置),此参数也可以不指定,会默认为 0,也就是从序列的开头进行切片
**end:**表示切片的结束索引位置(不包括该位置),如果不指定,则默认为序列的长度
**step:**表示在切片过程中,隔几个存储位置(包含当前位置)取一次元素,也就是说,如果 step 的值大于 1,则在进行切片去序列元素时,会“跳跃式”的取元素。如果省略设置 step 的值,则最后一个冒号就可以省略.

a = '123456789'

print(a[0:8]#只取到结束位置的前一个
#运行结果:12345678

print(a[0:8:2])
#运行结果:1357

print(a[::2]) # 默认从开头到最后一个
#运行结果:13579

print(a[:2]) #默认从第一个开始,取到第二个
#运行结果:12

④序列可相加、相乘

​ 相加:它会将两个序列进行连接,但不会去除重复的元素

print('我是' + '孜孜淑淑')
print([1, 2, 3] + [3, 9, 10])
'''运行结果:
我是孜孜淑淑
[1, 2, 3, 3, 9, 10]
'''

​ 相乘:使用数字 n 乘以一个序列会生成新的序列,其内容为原来序列被重复 n 次的结果

list = ['1'] * 5
print(list)
#运行结果:['1', '1', '1', '1', '1']

⑤检查元素是否包含在数列中

​ Python 中,可以使用 in 关键字检查某元素是否为序列的成员,其语法格式为

value in sequence
其中,value 表示要检查的元素,sequence 表示指定的序列

和 in 关键字用法相同,但功能恰好相反的,还有 not in 关键字,它用来检查某个元素是否不包含在指定的序列中

str = '我是孜孜淑淑'
print('我' in str)

#True

print('我' not in str)

#False
  1. 优先掌握的操作
str1 = 'hello python!'

# 1.按索引取值(正向取,反向取):
# 1.1 正向取(从左往右)
print(str1[6])
#p
# 1.2 反向取(负号表示从右往左)
print(str1[-4])
#h
# 1.3 对于str来说,只能按照索引取值,不能改
str1[0]='H' # 报错TypeError


# 2.切片(顾头不顾尾,步长)
# 2.1 顾头不顾尾:取出索引为0到8的所有字符
print(str1[0:9])  
#hello pyt
# 2.2 步长:0:9:2,第三个参数2代表步长,会从0开始,每次累加一个2即可,所以会取出索引0、2、4、6、8的字符
print(str1[0:9:2])  
#hlopt 
# 2.3 反向切片,将字符串倒叙
print(str1[::-1])  # -1表示从右往左依次取值
#!nohtyp olleh

# 3.长度len
# 3.1 获取字符串的长度,即字符的个数,但凡存在于引号内的都算作字符)
print(len(str1)) # 空格也算字符
#13

# 4.成员运算 in 和 not in    
# 4.1 int:判断hello 是否在 str1里面
print('hello' in str1)  
#True
# 4.2 not in:判断tony 是否不在 str1里面
print('tony' not in str1) 
#True

# 5.strip移除字符串首尾指定的字符(默认移除空格)
# 5.1 括号内不指定字符,默认移除首尾空白字符(空格、\n、\t)
str1 = '  life is short!  '
print(str1.strip())  
#life is short!
#5.2 只移除左边的空白字符
print(str1.lstrip())   
#5.3 只移除右边的空白字符
print(str1.rstrip())  
# 5.4 移除括号内指定字符,移除首尾指定的字符
str2 = '**tony**'  
print(str2.strip('*'))  
# tony

# 6.切分split
# 6.1 括号内不指定字符,默认以空格作为切分符号
str3='hello world'
print(str3.split())
#['hello', 'world']
# 6.2 括号内指定分隔字符,则按照括号内指定的字符切割字符串
str4 = '127.0.0.1'
print(str4.split('.'))  
#['127', '0', '0', '1']  # 注意:split切割得到的结果是列表数据类型


# 7.循环
str5 = '今天你好吗?'
for line in str5:  # 依次取出字符串中每一个字符
   print(line)

#8.转变大小写
#8.1将英文字符全部变成小写
print(str3.lower())
#8.2将英文字符全部变成大写
print(str3.upper())

#9.判断字符串是否以括号内指定的字符开头或结尾,结果为bool值Ture或者False
#9.1 开头starswith()
print(str3.starswith('t'))
#Ture
print(str3.starswith('j'))
#False
#9.2 结尾endswith()
print(str3.endswith('jam'))
#Ture
print(str3.endswith('tony'))
#False
'''用法举例:
判断一份文件是否是照片
file_path = 'index.jpg'
if print(file_path.endswith(jpg)):
	print('这是一张图片')
'''

#10. 从可迭代对象中取出多个字符串,然后按照指定的分割符进行拼接,拼接的结果为字符串
print('%'.join('hello'))#从字符串'hello'中取出多个字符串,然后按照%作为分割符号进行拼接
# h%e%l%l%o
print('|',join(['孜孜淑淑','喜欢','跑步'])) # 从列表中取出多个字符串,然后按照|作为分隔符号进行拼接
# 孜孜淑淑|喜欢|跑步

#11. 替换,用新字符替换就字符
str7 = '小荷才露尖尖角,早有蝴蝶立上头'
str7 = str7.replace('蝴蝶', '蜻蜓')  #语法:replace('旧的字符','新的字符')
print(str7)
#运行结果:小荷才露尖尖角,早有蜻蜓立上头

#12. 判断字符串是否是纯数字组成,返回结果为Ture或False
str8 = '222223333'
print(atr8,isdigit())
# Ture
#生活场景:判断手机号码

int 和 string 类型的相关重点

也就是从序列的开头进行切片

————————————————
说明:
1.本专栏为自己跟着CSDN博主「老杨玩python」的【python之路】专栏的原创文章学习的学习笔记,其内容与CSDN博主「老杨玩python」的文章相似,大家可以自己点击原文链接查看。
专栏链接:https://blog.csdn.net/weixin_43079274/category_10836520.html?spm=1001.2014.3001.5482
2.学习笔记有问题欢迎大家在留言区留言或者私信我哦。

举报

相关推荐

0 条评论