4、python——基本数据类型(整形、float、字符串、字符串的拼接、布尔类型、转义字符)

目录

1、Python数字

1.1、整形(int)

1.1.1、整形进制表示

1.1.2、整形进制操作

1.2、float字符

1.3、decimal模块

1.4、复数(complex)

2、字符串

2.1、字符串的表示方法

2.2、转义字符

2.2.1、\n——换行

2.2.2、\\——反斜杠符号

2.2.3、\a——响铃

2.2.4、\t——制表符

2.3、字符串取值

2.3.1、下标取值法(注意:下标是从0开始)

2.3.2、切片取值法

2.4、级连字符串

2.5、如何查看帮助

2.6、字符串常用方法——判断系列(True/False)

2.7、字符串常用方法——查找统计类

2.8、字符串常用方法——字符串转换类(返回一个新对象)

2.8.1、split()

2.9、字符串的拼接

2.9.1、字符串的拼接(+)

2.9.2、字符串的拼接(join)

2.9.3、字符串格式化(%)

2.9.4、字符串格式化——format

2.9.5、字符串格式化——f

3、布尔类型(booleans)

3.1、什么叫布尔值

3.2、布尔值的取值范围

3.3、哪些布尔值为假⭐⭐⭐

3.4、python3和python2关于bool的比较

4、常量

5、None


1、Python数字

在Python中有3种类型的数——整数、浮点数和复数

1.1、整形(int)

1.1.1、整形进制表示

1.1.2、整形进制操作

十进制转化为二、八、十六进制

二、八、十六进制转化为十进制

1.2、float字符

1.3、decimal模块

decimal类型数据(decimal.Decimal)是精确的小数,可以传递给Deciaml整形或者字符串参数

>>> from decimal import Decimal
>>> mydec = Decimal.from_float(12.22)
>>> mydec
Decimal('12.2200000000000006394884621840901672840118408203125')
>>> type(mydec)
<class 'decimal.Decimal'>
>>> mydec = Decimal('12.22')
>>> mydec
Decimal('12.22')
>>> type(mydec)
<class 'decimal.Decimal'>

1.4、复数(complex)

复数(complex):复数就是实数和虚数的统称
complex的一般形式为:x+yj,其中x是复数的实数部分,y是复数的虚数部分,这里x和y都是实数

>>> a = 4+5j
>>> type(a)
<class 'complex'>
>>> dir(a)
[..., 'conjugate', 'imag', 'real'] 
>>> a.real
4.0
>>> a.imag
5.0

2、字符串

字符串:字符串是字符的序列;字符串是不可变的序列,一旦创造了一个符号就不能够再改变它

2.1、字符串的表示方法

单引和双引可以互相包含,但是里边的引号不能够和最外边的一样

2.2、转义字符

2.2.1、\n——换行

>>> print("san\nle")
san
le

2.2.2、\\——反斜杠符号

>>> print("san \\n le")
san \n le

2.2.3、\a——响铃

>>> print("san \a le")
san  le

2.2.4、\t——制表符

1)\t表示空8个字符,tab表示空4个字符
2)\t如何实现对齐:可以把一个\t当作一组八个“坑”的萝卜坑,每个“坑”只能放一个字符(萝卜),一个元素(一大把萝卜)包含多个字符(萝卜),每次放元素(一大把萝卜)的时候只能从第一个“坑”开始放。如果元素的占位大于8或者等于8,就理解为太拥挤了,那就要再加入一个萝卜坑与前边太拥挤了了的萝卜坑拼起来。如果元素占位小于八,那么每一个元素都只占一个萝卜坑,从而各列都能实现完美对齐。

2.3、字符串取值

2.3.1、下标取值法(注意:下标是从0开始

>>> name = "i am gold"
>>> print(name[3])
m

2.3.2、切片取值法

>>> str1 = "abcdefghijklmn" 
>>> print(str1[3])
d
>>> print(str1[-6])
i

# 一般格式str[start:end:step]  当end<len(str)切片都是左闭右开区间,否则都是闭区间
# step 默认为1
# 切片取值三部曲
# 1、如果step为正,表示从左到右截取(0、1、2....),如果step为负,表示从右到左截取
# 2、确认start和end的位置
# 3、确认step的步长是多少

>>> print(str1[3:])
defghijklmn
>>> print(str1[3:20])
defghijklmn
>>> print(str1[:7])
abcdefg
>>> print(str1[3:7:2])  #按照步长为2从下标3取到7,7不取
df
>>> print(str1[-7:10:-2])  start为h,end为j,step为-2,从右往左数,很明显不能取到。

>>> print(str1[-7::+1])  # 默认相当于无穷,即end>len(str)+1的情况,所以取值为闭区间
hijklmn
>>> print(str1[-7::-1])  
hgfedcba

# 字符串的倒叙
>>> print(str1[::-1])  
nmlkjihgfedcba

2.4、级连字符串

2.5、如何查看帮助

2.6、字符串常用方法——判断系列(True/False)

>>> str1 = "123456"
>>> str2 = "123一二三"
>>> str3 = "abc 123"
>>> str4 = "Hello Sanchuang" 
>>> str5 = "HelloSanchuang" 
>>> str1.isdigit()
True
>>> str1.isnumeric()
True
>>> str2.isnumeric()
True
>>> str3.isnumeric()   #因为还有空格,所以为False
False
>>> str3.istitle()
False
>>> str4.istitle()
True
>>> str4.isalpha()
False
>>> str5.isalpha()
True

>>> "abc xx".startswith("a")
True
>>> "abc xx".endswith("yy")
False
>>> "abc xx".endswith("xx")
True
>>> "abc xx".endswith("xx",3)
True
>>> "abc xx".startswith("b",0)
False
>>> "abc xx".startswith("b",1)
True

2.7、字符串常用方法——查找统计类

>>> len("shgahgk总督")
9
>>> 'ababsbsbdabsab'.count("a")
4
>>> 'ababsbsbdabsab'.count("a",7)
2
>>> 'aafhsghfg'.count("aa",1)
0
>>> 'aafhsghfg'.count("aa",1,5)
0

# 返回第一次出现该字符的下标位置,建议使用find,因为使用index,如果找不到会报错,导致程序出错
>>> 'ababsbsbdabsab'.index("a")
0
>>> 'ababsbsbdabsab'.index("aa")    #这里就报错了
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: substring not found
>>> 'ababsbsbdabsab'.find('a')
0
>>> 'ababsbsbdabsab'.find('aa')   # 使用find,如果找不到,会返回-1.
-1

2.8、字符串常用方法——字符串转换类(返回一个新对象)

 

 这里边加了一个大小写互换

>>> msg = "i Am oK"
# 转化为大写
>>> print(msg.upper())
I AM OK
# 转化为小写
>>> print(msg.lower())
i am ok
# 单词首字母大写
>>> print(msg.title())
I Am Ok
# 大小写互换
>>> print(msg.swapcase())
I aM Ok
# 字符串转化为列表
>>> a = '1,2,3,4'
>>> a.split(',')
['1', '2', '3', '4']
# 列表转化为字符串
>>> a
['1', '2', '3', '4']
>>> '*'.join(a)
'1*2*3*4'

2.8.1、split()

split() 方法通过指定分隔符对字符串进行分割并返回一个列表,默认分隔符为空字符,包括空格,换行(\n),制表符(\t)等 

2.9、字符串的拼接

2.9.1、字符串的拼接(+)

>>> print("i" + "am" + "lilei")
iamlilei

2.9.2、字符串的拼接(join)

>>>str2 = "".join(["i", "am", "lelei"]) # []里边是一个列表
>>> print(str2)
iamlelei

2.9.3、字符串格式化(%)

# 使用% 占位符来进行格式化

# 基本格式:%[(name)][flags][width].[precision]typecode
# - (name):命名
# - flags: +,-,' '或0。+表示右对齐;-表示左对齐;' '为一个空格,表示在正数的左侧填充一个空
# 格,从而与负数对齐,0表示使用0填充。
# - width表示显示宽度
# - precision表示小数点后精度

# flags          可选,可供选择的值有:width         可选,占有宽度
# +        右对齐;正数前加正号,负数前加负号;
# -        左对齐;正数前无符号,负数前加负号;
# 空格("")  右对齐;正数前加空格,负数前加负号;
# 0        右对齐;正数前无符号,负数前加负号;用0填充空白处

# typercode:
# %s 表示字符串
# %d 表示整形十进制
# %f 表示浮点数
# %x 表示 十六进制数
# %o 表示八进制数
>>> name = "wen"
>>> age = 18
>>> print("i am %s, my age is %s"%(name, age))  # 只有一个"坑"不需要(),只有两个及两个以上才用()
i am wen, my age is 18
>>> print("第二个格式化:%-11x" % 10)
第二个格式化:a          # 这里有是个字符
>>> print("%011x"%-10)
-000000000a
>>> print("%+11x"%10)
         +a
>>> print("% 11x"%10)
          a
>>> print("第三个格式化:% x" % 10)
第三个格式化: a
>>>print("第四个格式化:%010.3f" % 2.4352341)
第四个格式化:000002.435
>>> print("第五个格式化:%.4f" % 4.546456)   # 这里会四舍五入
第五个格式化:4.5465
>>> print("第六个格式化: %s %%"%("sc"))  # 两个%表示%本身  若后边没有"坑",则%可以用%表示,若后边有"坑",则需要用"%%"来表示%
第六个格式化: sc %

2.9.4、字符串格式化——format

一般形式:{变量:[填充字符][对齐方式 <^>][宽度][格式]}

# #############format格式化
name = "wen"
age = 18
print("format01 --> 姓名:{}, 年龄:{}".format(name,age))
# output:format01 --> 姓名:wen, 年龄:18

print("format01 --> 姓名:{1}, 年龄:{0}".format(name,age))  #不写参数就是按照顺序来,参数下标是从0开始
# output:format01 --> 姓名:18, 年龄:wen

print("format01 --> 姓名:{x}, 年龄:{y}".format(x=name,y=age))  #需要在format后边定义x,y的取值;在括号中等号两边不需要有空格
# output:format01 --> 姓名:wen, 年龄:18

# 字符串格式化(format)
# {变量:[填充字符][对齐方式 <^>][宽度][格式]}
print("format03 --> {0:*>8}".format(10,20)) # 右对齐,0为第一个变量
# output:format03 --> ******10

print("format04 --> {num:@^10}".format(num=35))
# output:format04 --> @@@@35@@@@

# 精度与进制
print("format05 --> {1:*>15.2f}".format(1/3,6.333333))
# output:format05 --> ***********6.33

print("format06 --> {0:x}".format(10))
# output:format06 --> a

# 千分位格式化
print("format07 -->{0:,}".format(123456789))
# output:format07 -->123,456,789

# 索引
fdd = ["fzt", "fairy", 19, "heaven"]
print("name is {0[0]}, age is {0[2]}, identity is {0[1]}, live in the {0[3]}".format(fdd))
# output:name is fzt, age is 19, identity is fairy, live in the heaven

2.9.5、字符串格式化——f

python3 vs python2

######################## f  标志位  格式化
# python2里没有标志位 python3才有
name = "wen"
age = 18
print(f"my name is {name:a^10},ma age is {age}")
# output:my name is aaawenaaaa,ma age is 18

3、布尔类型(booleans)

3.1、什么叫布尔值

布尔值就是一个逻辑值

3.2、布尔值的取值范围

只有True和False

3.3、哪些布尔值为假⭐⭐⭐

'', 0, 0.0, (), [], {}, None, False

3.4、python3和python2关于bool的比较

Python3 中True、False 都是关键字

result = (3>4) + 1 + (5>4)   # booleans可以参与运算
print(3>4)   #output:False
print(result) #output:2
True  -->1
False -->0

4、常量

常量是指一旦初始化后就不能够修改的固定值。注意:在Python中表示一个常量通常用大写(约定俗成,非强制)表示,如:PI=3.1615926

5、None

None是一个特殊的常量,表示一种特殊的数据类型(NoneType),表示什么都没有

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

FanMY_71

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值