目录
一、数值型
1 数值型包含 int(整型)、flont(浮点型)、conplex(复数型)
1.1整型
Python 3.x 支持任意大小的整型数。整型数可以表示成十进制、八进制、十六进制和二进制形式。
几种整型常量的运算示例如下:
Python支持在数字之间使用下画线来分隔以提高数字的可读性,类似于数学上使用的千位分隔符。不能出现在开头和结尾,也不能使用多个连续的下画线符号。
正确使用下画线的示例如下;
1.2浮点型
浮点型是一种表达实数的方式, 浮点数是浮点型实数。
浮点型常量就是包含小数的常量,可直接写成带小数点的小数形式(如158.20、也可使用指数形式(具体形式为小数+E+阶码,e也可)表示(如-0.23E18、2.3e-6),mue-ts(阶码标志e之前无数字)、2.1E (无阶码)等都不是正确的浮点型常量。
浮点数运算的示例如下:
1.3复数型
复数包含实数与虚数。复数可表示成实部+虚部j形式,如-5.8+6j、4. 5+3e-7j.用complex(a[,b])可创建复数a+bj。
使用“复数.real"和“复数.imag”可从复数中提取它的实部和虚部。
Python内置函数abs(复数)可用来计算复数的模,使用复数. conjugate()可得到共轭复数。Python 还支持复数之间的加、减、乘、除等运算。
复数间的运算示例如下:
1.4数值运算符
数值运算符用于对数值进行连接运算,包括算数运算符、位预算符和赋值运算符.
1.4.1算数运算符
使用示例
1.4.2位运算符
位运算符将十进制整数转换为二进制数后按对应的二进制位进行运算(默认各位右对齐,在侧补0),再把运算结果转换为十进制数返回。
使用示例
1.4.3赋值运算符
python不支持递增运算符(++)和递减运算符(--)
使用示例
二、布尔型
布尔型数据可用于条件语句、循环语句,根据条件判断的结果来决定程序流程和分支的走向,也可用于在逻辑运算中表示运算结果。
2.1布尔型及其运算
布尔型数据是布尔值,它有自己的运算符。使用比较运算符和判断运算符和判断运算符进行产生的结果是布尔值。
1. 布尔值
布尔值只有两个:真(True) 和假(False)。
Python中的任何对象都可以判断其真假。
2.布尔运算
布尔运算包括非(not) 、与(and) 和或(or) ,优先级从高到低。布尔运算的规则如下。
(1)非运算(not x) :如果x为False, 则结果为True, 否则为False。
(2) 与运算(x and y) :如果x为False, 则不用考虑y,结果为False; 如果x为True,则结果取决于y为True还是False.
(3)或运算(xory):如果x为False,则结果取决于y为True还是False;如果x为True,则结果为True,不用考虑y。
3.比较运算
Python中比较运算符用于比较运算,它们有相同的优先级,并且比布尔运算符的优先级高。比较运算符如下。
<: 小于。
<=: 小于等于。
>: 大于。
>=: 大于等于。
== : 等于。
!=: 不等于。
is: 是对象。
is not: 不是对象。
示例
4.比较+布尔运算
使用运算符and和or执行运算后并不一定会返回True或False,可能会得到最后一个被计算的表达式的值,但是使用运算符not执行运算后一定会返回True或False。
2.2判断运算符
1.成员判断运算符;in
in判断元素是否在对象中,如果元素在对象中,泽返回true;否则返回false。
2.通知判断运算符;is
is判断两个对象是否为同一个对象,如果是同一个对象,则返回true;否则返回false
三.字符串类型
1.创建一个字符串
在Python中,字符串使用单引号、双引号、3个单引号或3个双引号作为定界符,并且不同的定界符可以互相嵌套 。
示例;
2.字符串的拼接
Python中,两个字符串进行加法运算表达为字符串的拼接。
3.字符串的索引
字符串也可以使用下标进行类似于数组的索引,每个字符串起始下标默认从0开始。
使用方法:字符串[下标],若下标超出 s 的长度则报错。
4.字符串的切片
如果你需要从字符串中取出一部分子字符串,可以使用切片实现,字符串切片起始下标默认从 0 开始。
结束下标默认为左闭右开,即结束下标为长度+1
如不写结束下标,默认到字符串最后一位
如开始下标和结束下标都不写,默认输出全部字符
结束下标不可超过字符长度+1
步长不写默认从1开始,步长不可超过字符长度,步长不可为浮点数
使用方法:字符串[起始下标:结束下标:步长]
5.自带的字符串方法及描述
把字符串的第一个字符大写 | |
返回一个原字符串居中,并使用空格填充至长度 width 的新字符串 | |
返回 str 在 string 里面出现的次数,如果 beg 或者 end 指定则返回指定范围内 str 出现的次数 | |
以 encoding 指定的编码格式解码 string,如果出错默认报一个 ValueError 的 异 常 , 除非 errors 指 定 的 是 'ignore' 或 者'replace' | |
以 encoding 指定的编码格式编码 string,如果出错默认报一个ValueError 的异常,除非 errors 指定的是'ignore'或者'replace' | |
检查字符串是否以 obj 结束,如果beg 或者 end 指定则检查指定的范围内是否以 obj 结束,如果是,返回 True,否则返回 False. | |
把字符串 string 中的 tab 符号转为空格,tab 符号默认的空格数是 8。 | |
检测 str 是否包含在 string 中,如果 beg 和 end 指定范围,则检查是否包含在指定范围内,如果是返回开始的索引值,否则返回-1 | |
格式化字符串 | |
跟find()方法一样,只不过如果str不在 string中会报一个异常. | |
如果 string 至少有一个字符并且所有字符都是字母或数字则返 回 True,否则返回 False | |
如果 string 至少有一个字符并且所有字符都是字母则返回 True, 否则返回 False | |
如果 string 只包含十进制数字则返回 True 否则返回 False. | |
如果 string 只包含数字则返回 True 否则返回 False. | |
如果 string 中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是小写,则返回 True,否则返回 False | |
如果 string 中只包含数字字符,则返回 True,否则返回 False | |
如果 string 中只包含空格,则返回 True,否则返回 False. | |
如果 string 是标题化的(见 title())则返回 True,否则返回 False | |
如果 string 中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是大写,则返回 True,否则返回 False | |
以 string 作为分隔符,将 seq 中所有的元素(的字符串表示)合并为一个新的字符串 | |
返回一个原字符串左对齐,并使用空格填充至长度 width 的新字符串 | |
转换 string 中所有大写字符为小写. | |
截掉 string 左边的空格 | |
maketrans() 方法用于创建字符映射的转换表,对于接受两个参数的最简单的调用方式,第一个参数是字符串,表示需要转换的字符,第二个参数也是字符串表示转换的目标。 | |
返回字符串 str 中最大的字母。 | |
返回字符串 str 中最小的字母。 | |
有点像 find()和 split()的结合体,从 str 出现的第一个位置起,把 字 符 串 string 分 成 一 个 3 元 素 的 元 组 (string_pre_str,str,string_post_str),如果 string 中不包含str 则 string_pre_str == string. | |
把 string 中的 str1 替换成 str2,如果 num 指定,则替换不超过 num 次. | |
类似于 find() 函数,返回字符串最后一次出现的位置,如果没有匹配项则返回 -1。 | |
类似于 index(),不过是返回最后一个匹配到的子字符串的索引号。 | |
返回一个原字符串右对齐,并使用空格填充至长度 width 的新字符串 | |
类似于 partition()函数,不过是从右边开始查找 | |
删除 string 字符串末尾的空格. | |
以 str 为分隔符切片 string,如果 num 有指定值,则仅分隔 num+1 个子字符串 | |
按照行('\r', '\r\n', '\n')分隔,返回一个包含各行作为元素的列表,如果参数 keepends 为 False,不包含换行符,如果为 True,则保留换行符。 | |
检查字符串是否是以 obj 开头,是则返回 True,否则返回 False。如果beg 和 end 指定值,则在指定范围内检查. | |
在 string 上执行 lstrip()和 rstrip() | |
翻转 string 中的大小写 | |
返回"标题化"的 string,就是说所有单词都是以大写开始,其余字母均为小写(见 istitle()) | |
根据 str 给出的表(包含 256 个字符)转换 string 的字符, 要过滤掉的字符放到 del 参数中 | |
转换 string 中的小写字母为大写 | |
返回长度为 width 的字符串,原字符串 string 右对齐,前面填充0 |
课本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)
结果
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)
结果