整数 -- 数字(int)
用于比较和运算
32位 2 ** 31 ~ 2 ** 31-1
64位 -2 ** 63 ~ 2 ** 63- 1
+ - * / // ** %
python2 整型int -- long(长整型) / 获取整数
python3 整型int / 获取浮点数
bin(十进制数) 将十进制转换成二进制 (除二求余法)
int("二进制",2) 将二进制转换成十进制
布尔值 -- bool()
print(bool(1)) #数字非零就是True,零就是False
print(bool("")) #字符串不为空就是True,字符串里没有任何东西就是False
print(bool(" ")) #结果:True
print(bool("False")) #结果为True
字符串详解
索引(下标)
从左往右(0~n)
从右往左(-1~字符串的长度)
索引的时候索引超出范围会报错
切片name = 'Jacky'
# 索引 01234
print(name[0:4])
结果:
Jack
[第一个位置是开始:第二个位置是终止]中间必须使用分号,从索引0开始获取到索引4(不包含4)结束
步长
name = 'Jacky'
# 索引 01234
print(name[0:4:1])
结果:
Jack
"""
s = 'Python最NB'
获取s字符串中前3个内容
获取s字符串中第3个内容
获取s字符串中后3个内容
获取s字符串中第3个到第8个
获取s字符串中第2个到最后一个
获取s字符串中第1,3,5个内容
获取s字符串中第2,4,6个内容
获取s字符串中所有内容
获取s字符串中第4个到最后一个,每2个取一个
获取s字符串中倒数第5个到最开始,每3个取一个
"""
s = 'Python最NB'
print(s[0:3])
print(s[2])
print(s[-3:])
print(s[2:8])
print(s[1:])
print(s[0:5:2])
print(s[1:6:2])
print(s[:])
print(s[3::2])
print(s[-5::-3])
print(s[:-8:-2])
[开始 : 结束 : 步长] 步长默认为1
第一个参数是起始位置,第二参数是终止位置,第三个参数是步长(每次走几步)
切片的时候起始位置和终止位置超出范围的时候不报错
字符串的方法
因为字符串是可哈希的(不可变的),所以使用方法后字符串并没有改变,需要重新赋值
upper()(全部大写)
name = 'alex'
new_name = name.upper()
print(new_name)
# 把这个字符串全部变成大写
结果:
ALEX
lower()(全部小写)
name = 'ALEX'
new_name = name.lower()
print(new_name)
# 把这个字符串全部变成小写
结果:
alex
应用场景
# 字符串大小写做验证码
id = '1234'
id_input = input("请输入验证码(1234)")
user = input('请输入账号:')
pwd = input('请输入密码:')
if id == id_input:
if user == 'alex' and pwd == 'alex123':
print('登陆成功!')
else:
print('登录失败')
else:
print('验证码错误!')
startswith("字符")(判断是否以什么开头)
name = 'alex'
new_name = name.startswith('a')
print(new_name)
# 判断这是不是字符串是不是以a开头的
结果:
True
name = 'alex'
new_name = name.startswith('e',2,6)
print(new_name)
# 判断这是不是字符串是不是以e开头的
结果:
True
endswith("字符")(判断是否以什么结尾)
name = 'alex'
new_name = name.endswith('x')
print(new_name)
# 判断这是不是字符串是不是以x结尾的
结果:
Ture
name = 'alex'
new_name = name.endswith('e',2,3)
print(new_name)
# 判断这是不是字符串是不是以e结尾的
结果:
True
count()(统计出现的次数)
name = 'alexdsb'
new_name = name.count('a')
print(new_name)
#统计name这个字符串中a出现的次数
结果:
1
replace("旧替换字符","新替换字符") (字符串替换,后面的字符替换前面的字符)
特殊用处:把字符串所有的空格去掉 #replace(" ","")
s = ' a l ex ds b '
s1 = s.replace(' ','')
print(s1)
# 替换字符串中的内容
结果:
alexdsb
name = 'alexdsb'
new_name = name.replace('alex','zdr')
print(new_name)
# 替换字符串中的内容
结果:
zdrdsb
name = 'alexdsbalex'
new_name = name.replace('alex','zdr',1)
print(new_name)
# 替换字符串中的内容,1是指替换一次就行
结果:
zdrdsbalex
strip() (去除头尾俩边的空格,换行符,制表符)
name = ' alexdsb '
new_name = name.strip()
print(new_name)
#去除头尾俩遍的空格和换行符
结果:
alexdsb
name = 'alexdsba'
new_name = name.strip("al")
print(new_name)
# 去除头尾的al和a
结果:
exdsb
split("字符") (以空格,换行符,制表符分割)
name = 'alexdsb'
new_name = name.split("x")
print(new_name)
#通过x将字符串name进行切割
结果:
['ale', 'dsb']
name = 'alexdsbx'
new_name = name.split("x",2)
print(new_name)
#通过x将字符串name进行切割,2指的是最多切几刀
结果:
['ale', 'dsb', '']
format("字符") (字符串格式化)
name = 'alexdsb{}'
new_name = name.format('说的对')
print(new_name)
# 字符串格式化
结果:
alexdsb说的对
is系列
isdecimal() (判断是不是十进制,返回的是布尔值)
name = '123'
new_name = name.isdecimal()
print(new_name) # 判断是不是十进制,返回结果是布尔值
结果:
True
isalpha() (判断是不是字母和中文,返回的是布尔值)name = 'alex'
new_name = name.isalpha()
print(new_name)
# 判断是不是字母和汉字,返回结果是布尔值
结果:
True
isalnum() #判断是不是字母,数字,中文
isdigit() #判断是不是阿拉伯数字
补充-
首字母大写
name = 'alexdasx'
new_name = name.capitalize()
print(new_name)
查找下标
name = 'alexdasx'
new_name = name.find('e')
print(new_name)
# 通过元素查找下标,不存在就返回-1
name = 'alexdasx'
new_name = name.index('e')
print(new_name)
# 通过元素查找下标,不存在就报错
每个单词首字母大写
name = 'alex_wusir'
print(name.title())
内容填充
name = 'alex_wusir'
print(name.center(50))
大小写反转
name = 'alex_wusir'
print(name.swapcase())
len() (获取长度)
s = "Python提供的这个方法就是获取长度的"
print(len(s))
结果:
20
for循环 --for关键字
name = "Jacky"
for i in name:
print(i)
结果:
J
a
c
k
y
for是关键字,i是一个变量,后边的name是要被循环的内容,他会把这个name指向的字符串里的每个元素打印出来
格式:
for 关键字 i 变量 in 关键字 要迭代的对象 冒号
缩进 循环体
for 变量 in 要迭代的对象:
循环体
for i in name:
pass
for 关键字
i 变量
in 关键字
name 可迭代对象
可迭代的:能被for循环的
for循环是可以循环的数据结构(就是后面会讲的 可迭代):
字符串(str)
列 表(list)
元 祖(tuple)
字 典(dict)
集 合(set)
唯独不能进行循环的就是 整型(int)和布尔值(bool)
面试:
for i in "alex":
pass
print(i) #x
pass ... #占位符
内容来源于网络如有侵权请私信删除