Python中数值、布尔、字符串的特征和使用方法

一、数值类型

数值类型在Python中有整数型(int)、浮点数型(float)和复数型(complex)三种,整数和浮点数在Python中可自由转换,但浮点数转为整数后无法再次转为原浮点数,复数与其他两个类型均可进行数学运算。

代码(注:因为print中加入了字符串类型,无法进行相加,因此使用str()强制转型):

x = int(3)
y = float(3.5)
print("整数:"+str(x))
print("浮点数:"+str(y))
# 整数转浮点数
print("整数转浮点数:"+str(float(x)))
# 浮点数转整数
print("浮点数转整数:"+str(int(y)))
# 整数转浮点数再转整数
print("整数转浮点数再转整数:"+str(int(float(x))))
# 浮点数转整数再转浮点数
print("浮点数转整数再转浮点数:"+str(float(int(y))))

运行结果:
Python中数值、布尔、字符串的特征和使用方法插图

1、整数类型(int)

整数类型在Python中一般使用int()定义,如整数使用引号包裹,可以使用int(str)进行强制转型,但除了数值型的字符串无法转型为int类型

可以使用int函数进行定义一个整数,如:int(1)

2、浮点数类型(flow)

浮点数类型在Python中一般使用float()定义,如整数使用引号包裹,需要修改为浮点数类型,可以使用float(str)进行强制转型,但除了数值型和浮点数型的字符串无法转型为float类型

可以使用float函数进行定义一个浮点数,如:float(3.14)

3、复数类型(complex)

复数类型在Python中一般表现形式为a+bj,其中a为实部,b为虚部,j或者J为虚数单位,复数也可进行数学运算,与整数、浮点数均可进行数学运算

在Python中,可以使用complex函数来创建一个复数,如:x = complex(1, 2)

Python使用real方法获取实部,imag方法获取虚部

如:x.real获取实部,x.imag获取虚部

总结:

数值类型在python中可自由转换,但仅限于数值类型,字符串无法进行数值转换,各数值类型均可相互进行数学运算。

二、布尔类型

在Python中,布尔类型一般使用0和1表示,布尔类型是 int 类型的扩展,只有 True 与 False 两种取值: True为真、False为假,一般情况下布尔类型在判断中使用偏多,一般情况下if和while中使用偏多。

一般情况下,布尔类型适用于表达式的比较,如:大小、是否等于、是否存在等。

代码:

x = 1
y = 0
#判断x是否为1,如果为1则输出True
if x:
print("True")
else:
print("False")
while x:
print("True")
break
#判断y是否为0,如果为0则输出Flase
if y:
print("True")
else:
print("False")
#无输出则表明y为0
while y:
print("True")
break

运行结果:
Python中数值、布尔、字符串的特征和使用方法插图1
在Python中有提供bool()方法,用于输出表达式的布尔值。
总结:
布尔类型(bool)在Python中多用于判断使用,并只有True和Fease两种表达形式,在编写代码时不建议使用while True或者while 1进行判断,可能会导致无限循环,而出现不可逆的错误。

三、字符串(str)

在Python中一般情况下不管字符长度为多少,默认都为字符串,字符串可进行加减乘等数学运算,也可与整数进行相应的计算,但不可与浮点数进行数学运算。

字符串的转换方法:str()   该方法可将其他类型转换为字符串类型

字符串在Python中有多种内置函数,可计算字符串长度,进行部分的转换等。

1、字符串的创建

一般使用单引号,双引号和三引号进行创建,不管有多少字符都默认为字符串。

如:'这是一个字符串'、"这是一个字符串"、"""这是一个字符串"""

2、字符串拼接

Python中,两个字符串进行加法运算表达为字符串的拼接。

如:print("这是一个字符串"+"这也是一个字符串")

输出结果为:这是一个字符串这也是一个字符串

3、字符串索引

字符串也可以使用下标进行类似于数组的索引,每个字符串起始下标默认从0开始。

使用方法:字符串[下标],若下标超出 s 的长度则报错。

注意:字符串不可使用下标进行新增。

4、字符串切片

如果你需要从字符串中取出一部分子字符串,可以使用切片实现,字符串切片起始下标默认从 0 开始。

结束下标默认为左闭右开,即结束下标为长度+1

如不写结束下标,默认到字符串最后一位

如开始下标和结束下标都不写,默认输出全部字符

结束下标不可超过字符长度+1

步长不写默认从1开始,步长不可超过字符长度,步长不可为浮点数

使用方法:字符串[起始下标:结束下标:步长]

5、自带字符串方法及描述

方法 描述
capitalize() 将字符串的第一个字符转换为大写
center(width, fillchar) 返回一个指定的宽度 width 居中的字符串,fillchar 为填充的字符,默认为空格。
count(str, beg= 0, end=len(string)) 返回 str 在 string 里面出现的次数,如果 beg 或者 end 指定则返回指定范围内 str 出现的次数
bytes.decode(encoding="utf-8", errors="strict") Python3 中没有 decode 方法,但我们可以使用 bytes 对象的 decode() 方法来解码给定的 bytes 对象,这个 bytes 对象可以由 str.encode() 来编码返回。
encode(encoding='UTF-8',errors='strict') 以 encoding 指定的编码格式编码字符串,如果出错默认报一个 ValueError 的异常,除非 errors 指定的是 'ignore' 或者 'replace'
endswith(suffix, beg=0, end=len(string)) 检查字符串是否以 suffix 结束,如果 beg 或者 end 指定则检查指定的范围内是否以 suffix 结束,如果是,返回 True,否则返回 False。
expandtabs(tabsize=8) 把字符串 string 中的 tab 符号转为空格,tab 符号默认的空格数是 8。
find(str, beg=0, end=len(string)) 检测 str 是否包含在字符串中,如果指定范围 beg 和 end,则检查是否包含在指定范围内,如果包含返回开始的索引值,否则返回 -1
index(str, beg=0, end=len(string)) 跟 find() 方法一样,只不过如果 str 不在字符串中会报一个异常。
isalnum() 如果字符串至少有一个字符并且所有字符都是字母或数字则返回 True,否则返回 False
isalpha() 如果字符串至少有一个字符并且所有字符都是字母或中文字则返回 True,否则返回 False
isdigit() 如果字符串只包含数字则返回 True 否则返回 False..
islower() 如果字符串中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是小写,则返回 True,否则返回 False
isnumeric() 如果字符串中只包含数字字符,则返回 True,否则返回 False
isspace() 如果字符串中只包含空白,则返回 True,否则返回 False.
istitle() 如果字符串是标题化的(见 title())则返回 True,否则返回 False
isupper() 如果字符串中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是大写,则返回 True,否则返回 False
join(seq) 以指定字符串作为分隔符,将 seq 中所有的元素(的字符串表示)合并为一个新的字符串
len(string) 返回字符串长度
ljust(width[, fillchar]) 返回一个原字符串左对齐,并使用 fillchar 填充至长度 width 的新字符串,fillchar 默认为空格。
lower() 转换字符串中所有大写字符为小写.
lstrip() 截掉字符串左边的空格或指定字符。
maketrans() 创建字符映射的转换表,对于接受两个参数的最简单的调用方式,第一个参数是字符串,表示需要转换的字符,第二个参数也是字符串表示转换的目标。
max(str) 返回字符串 str 中最大的字母。
min(str) 返回字符串 str 中最小的字母。
replace(old, new [, max]) 把将字符串中的 old 替换成 new,如果 max 指定,则替换不超过 max 次。
rfind(str, beg=0,end=len(string)) 类似于 find()函数,不过是从右边开始查找.
rindex( str, beg=0, end=len(string)) 类似于 index(),不过是从右边开始.
rjust(width,[, fillchar]) 返回一个原字符串右对齐,并使用 fillchar(默认空格)填充至长度 width 的新字符串
rstrip() 删除字符串末尾的空格或指定字符。
split(str="", num=string.count(str)) 以 str 为分隔符截取字符串,如果 num 有指定值,则仅截取 num+1 个子字符串
splitlines([keepends]) 按照行('\r', '\r\n', \n')分隔,返回一个包含各行作为元素的列表,如果参数 keepends 为 False,不包含换行符,如果为 True,则保留换行符。
startswith(substr, beg=0,end=len(string)) 检查字符串是否是以指定子字符串 substr 开头,是则返回 True,否则返回 False。如果 beg 和 end 指定值,则在指定范围内检查。
strip([chars]) 在字符串上执行 lstrip()和 rstrip()
swapcase() 将字符串中大写转换为小写,小写转换为大写
title() 返回"标题化"的字符串,就是说所有单词都是以大写开始,其余字母均为小写(见 istitle())
translate(table, deletechars="") 根据 table 给出的表(包含 256 个字符)转换 string 的字符, 要过滤掉的字符放到 deletechars 参数中
upper() 转换字符串中的小写字母为大写
zfill(width) 返回长度为 width 的字符串,原字符串右对齐,前面填充0
isdecimal() 检查字符串是否只包含十进制字符,如果是返回 true,否则返回 false。

表数据来源:菜鸟教程
四、Python程序设计(人民邮电出版社)49页实训

1、按照下列要求修改、运行并调试【例2.1】中的程序

输入表达式格式为(....)x,x=2,8,16,将x进制转换为相应的十进制数

代码:

str1 = input("请输入表达式(....)x:")
p1 = str1.find("(")
p2 = str1.find(")")
jz = str1.split(")")[1].split(",")
lens = len(str1)
if not(p2>p1 and p2+1<lens):
    print("输入错误")
else:
    es = str1[p1+1:p2]
    for i in jz:
        if i == '2':
            n = bin(int(es))
            x = eval(n)
        elif i == '8':
            n = oct(int(es))
            x = eval(n)
        elif i == 'h':
            n = hex(int(es))
            x = eval(n)
        print(es,"对应",i,"进制为:",n,"对应的十进制为:",x)

运行结果:
Python中数值、布尔、字符串的特征和使用方法插图2

2、按照下列要求修改、运行并调试【例2.3】中的程序

(1)采用正则表达式在公司联系方式中获得移动电话号码

(2)不采用正则表达式在公司联系方式中获得固定电话号码

代码:

import re
info = '''本公司的联系方式:
固定电话:025-8541239x,
移动电话:1385151613x,
QQ:95845696x,
泰州分公司:0523-661231x,'''
print(info)
pattern = re.compile(r'(\d{3,4})-(\d{7,8})')
index = 0
result = pattern.search(info,index)
if result:
    print('匹配内容:',result.group(0),\
          '在',result.start(0),'和',result.end(0),'之间:',result.span(0))
    print('匹配内容:', result.group(1), \
          '在', result.start(0), '和', result.end(0), '之间:', result.span(1))
    print('匹配内容:', result.group(2), \
          '在', result.start(0), '和', result.end(0), '之间:', result.span(2))

# (1)采用正则表达式在公司联系方式中获得移动电话号码
phone = re.findall(r'移动电话:(.*?),',info)[0]
print('移动电话号码:',phone)
# (2)不采用正则表达式在公司联系方式中获得固定电话号码
x = info.split('固定电话:')[1].split(',')[0]
print('固定电话:',x)

运行结果:

Python中数值、布尔、字符串的特征和使用方法插图3

点赞

发表回复

电子邮件地址不会被公开。必填项已用 * 标注