python基础数据类型一(int,str常用方法,format格式化输出,isalnum,isalpha,isdigit)
int
用于计算
bit_length() 十进制转化为二进制的有效位数
v=11
print(v.bit_length())
1 0000 0001
2 0000 0010
3 0000 0011
100
int-->str str(int)
str-->int int(str) #条件是字符串全部由数字组成
a=input('>>>') #str
a=int(input('>>>')) #int
age=str(123)
age1=123
print(age,type(age))
print(age1,type(age1)
bool-->int T-->1, F-->0
int-->bool 非0即True,0为False
s=' '
if s:
print(666) #空字符串为假
str ''为假,' '为真
索引,切片,步长 #顾头不顾腚
s='python12期是最棒的' s1=s[0] print(s1,type(s1)) s2=s[-1] s3=s[:5] s4=s[3:] s5=s[:] s6=s[1:-1:2] s7=s[-1:5:-1] s8=s[2::2] print(s8) s9=s[-3:-1] print(s9) s='vkjimolgmfpo' count=0 while count<len(s): print(s[count])#概念要搞清楚 count+=1 s='vkjimolgmfpo' for i in s: print(i)
字符串的常用操作方法:
s='laoNANhaialeX'
**capitalize 首字母大写,其他字母小写。
s1=s.capitalize() print(s1)
*center 居中,默认不填充,填充可以是数字,字母,下划线,特殊字符,中文等。
s2=s.center(31) s3=s.center(31,'*') print(s2) print(s3)
***upper(),lower() 全部大写,或者全部小写。验证码用的最多。
s4=s.upper() s5=s.lower() print(s4) print(s5) code='aBCd'.upper()
your_code=input('请输入你的验证码,不区分大小写:').upper()
if code==your_code:
print('验证成功')
***startswith 判断以什么内容开头,返回bool值,可以切片,用逗号隔开。
endswith 判断以什么内容结尾 s6=s.startswith('lao') s7=s.startswith('N',3,7) s8=s.endswith('X',8) print(s6,s7,s8)
*swapcase 大小写翻转
s9=s.swapcase() print(s9)
*title 非字母隔开的每个单词的首字母大写。
t='hhjl7ljlk jkl&jlk8jkj*l' t1=t.title() print(t1)
***index通过元素找索引,可切片,找不到报错。
***find 通过元素找索引,找不到返回-1
s10=s.index('h',3,) print(s10) s11=s.find('h',3,8) print(s11) t=' \n alex ' print(t)
***strip 除去前后端的制表符,换行符,空格。在登录认证时用的多。
t1=t.strip() print(t1) t=' jkfdljgijojjvkj' t1=t.strip('j')#被空格挡住了,所以左边的j没有去掉 print(t1) t2=t.strip() print(t2) t3=t2.strip('j')#被空格去掉了了,所以左边的j没有了 print(t3) t4=t2.strip('kjf')# k,j,f不按顺序,分开从两边除去,遇到(k,j,f)之外的数立即停止。 print(t4) #lstrip,rstrip #从左边,右边开始除去。 t5=t2.lstrip('kjf')# k,j,f不按顺序,分开从左边除去,遇到(k,j,f)之外的数立即停止。 print(t5) t6=t2.rstrip('kjf')# k,j,f不按顺序,分开从右边除去,遇到(k,j,f)之外的数立即停止。 print(t6) count=1 while count<4: name=input('请输入你的名字:').strip() password=input('请输入你的密码:').strip() if name=='小职' and password=='123': print('恭喜你登录成功') break else: print('你输入的账号或者密码错误') count+=1
***split 分割 str-->list 默认以空格分割
s='xiaoyang xiaozhi xiaohui' s1='%xiaoyang% xiaozhi% xiaohui%' s2='axiaoyang axiaozhi axiaohui' s7='中xiaoyang 中xiaozhi 中xiaohui' s3=s.split() print(s3) s4=s1.split('%')#首尾被分割掉的话,就用空字符串表示。 print(s4) s5=s2.split('a') print(s5) s6=s2.split('a',3) #3是切割次数 print(s6) s8=s7.split('中',1)#中文也可以作为分隔符 print(s8)
***join
在某些情况下,list-->str 不能有数字(列表中的元素必须全部是字符串类型)
s='laonanhai' s1='-'.join(s) print(s1) l=['wusir','alex','laonanhai'] l1=''.join(l) print(l1,type(l1))
replace 替换
s='你大爷你大爷123你大爷456' s1=s.replace('你大爷','你好',2) s2=s.replace('你大爷','hello')#不写次数默认全部换 print(s1) print(s2) s='uihjhcamjuaveioamvrefv'
公共方法:
# len() 总个数
print(len(s))
# count() 计算某些元素出现的次数,可切片。
s1=s.count('a')
print(s1)
***format 格式化输出
三种方式
msg='我叫{},今年{},爱好{}'.format('xiaoyang',18,'dance') print(msg) msg='我叫{0},今年{1},爱好{2},我还叫{0}'.format('xiaoyang',18,'dance') print(msg) msg='我叫{name},今年{age},爱好{hobby}'.format\ (name='xiaoyang',hobby='dance',age=18) #数字加不加引号均可 print(msg)
isalnum 字符串由字母或数字组成
isalpha 字符串由字母组成
isdigit 字符串由数字组成
name='xiaozhi123' print(name.isalnum()) print(name.isalpha()) print(name.isdigit())
s='jfireoregiuiebnmvdo'
print(s[0])
print(s[:5])
count=0
while count<len(s):
print(s[count])
count+=1
for i in s: #for 变量 in 可迭代对象:
print(i+'*')
tast
# 1,有变量name = "aleX leNb" 完成如下操作:
name = "aleX leNb"
# 1)移除 name 变量对应的值两边的空格,并输出处理结果
n1=name.strip()
print(n1,type(name))
# 2)移除name变量左边的’al’并输出处理结果
n2=name.lstrip('al')
print(n2,type(name))
# 3)移除name变量右面的’Nb’,并输出处理结果
n3=name.rstrip('Nb')
print(n3)
# 4)移除name变量开头的a’与最后的’b’,并输出处理结果
n4=name.strip('ab')
print(n4)
# 5)判断 name 变量是否以 "al" 开头,并输出结果
n5=name.startswith('al')
print(n5)
# 6)判断name变量是否以”Nb”结尾,并输出结果
n6=name.endswith('Nb')
print(n6)
# 7)将 name 变量对应的值中的 所有的“l” 替换为 “p”,并输出结果
n7=name.replace('l','p')
print(n7)
# 8)将name变量对应的值中的第一个’l’替换成’p’,并输出结果
n8=name.replace('l','p',1)
print(n8)
# 9)将 name 变量对应的值根据 所有的“l” 分割,并输出结果。
n9=name.split('l')
print(n9)
# 10)将name变量对应的值根据第一个’l’分割,并输出结果。
n10=name.split('l',1)
print(n10)
# 11)将 name 变量对应的值变大写,并输出结果
n11=name.upper()
print(n11)
# 12)将 name 变量对应的值变小写,并输出结果
n12=name.lower()
print(n12)
# 13)将name变量对应的值首字母’a’大写,并输出结果
n13=name.capitalize()
print(n13)
# 14)判断name变量对应的值字母’l’出现几次,并输出结果
n14=name.count('l')
print(n14)
# 15)如果判断name变量对应的值前四位’l’出现几次,并输出结果
n15=name.count('l',0,5)
print(n15)
# 16)从name变量对应的值中找到’N’对应的索引(如果找不到则报错),并输出结果
n16=name.index('N')
print(n16)
# 17)从name变量对应的值中找到’N’对应的索引(如果找不到则返回-1)输出结果 #空格也算一位
n17=name.find('N')
print(n17)
# 18)从name变量对应的值中找到’X le’对应的索引,并输出结果 #把’X le’当成一个整体来看
n18=name.find(' X le')
print(n18)
# 19)请输出 name 变量对应的值的第 2 个字符?
print(name[1])
# 20)请输出 name 变量对应的值的前 3 个字符?
print(name[:3])
# 21)请输出 name 变量对应的值的后 2 个字符?
print(name[-2:])
22)请输出 name 变量对应的值中 “e” 所在索引位置??
n22=name.find('e')
print(n22)
n221=name.find('e',3)
print(n221)
获取子序列,去掉最后一个字符。如: oldboy 则获取 oldbo。
# 2,有字符串s = ‘123a4b5c’
s = '123a4b5c'
1)通过对li列表的切片形成新的字符串s1,s1 = ‘123’
s1=s[:3]
print(s1,type(s1))
2)通过对li列表的切片形成新的字符串s2,s2 = ‘a4b’
s2=s[3:6]
print(s2)
# 3)通过对li列表的切片形成新的字符串s3,s3 = ‘1345’ 概念要牢记
s3=s[::2]
print(s3)
# 4)通过对li列表的切片形成字符串s4,s4 = ‘2ab’
s4=s[1::2]
print(s4)
# 5)通过对li列表的切片形成字符串s5,s5 = ‘c’
s5=s[-1]
print(s5)
# 6)通过对li列表的切片形成字符串s6,s6 = ‘ba2’
s6=s[-3::-2]
print(s6)
3,使用while和for循环分别打印字符串s=’asdfer’中每个元素。
s= ' asdfer'
count=0
while count<len(s):
print(s[count])
count+=1
for i in s:
print(i)
4,实现一个整数加法计算器(两个数相加):
如:content = input(‘请输入内容:’) 用户输入:5+9或5+ 9或5 + 9,然后进行分割再进行计算。 int才可以相加
content = input('请输入你的内容:').strip()
con = content.split('+')
# print(con,type(con))
i1=int(con[0].strip()) #字符串转化为数字的过程中,会自动去除空格
i2=int(con[1].strip())
sum=i1+i2
print(sum)
5,计算用户输入的内容中有几个整数(以个位数为单位)。
如:content = input(‘请输入内容:’) # 如fhdal234slfh98769fjdla
s = 'fhdal234slfh98769fjdla' #错误
count = 0
n = 0
i = 0
while count < len(s):
if s[n].isdigit():
i += 1
n += 1
count += 1
print(i)
s = 'fhdal234slfh98769fjdla'
a=0
for i in s:
if i.isdigit():#if 是判断语句,while是循环语句,会一直判断。
a+=1
print(a)
from collections import Iterable
print(isinstance('abc123',Iterable))#str是否可迭代
分别用while,for循环输出字符串s = input(‘你想输入的内容’)的每一个字符。
s = input('你想输入的内容')
count=0
while count<len(s):
print(s[count])
count+=1
s = input('你想输入的内容')
for i in s:
print(i)