基础数据类型操作(一)——整型、字符串

type函数:用以显示对象数据类型

数字(在python2中区分int类型和long类型;而python3中只有int类型)

 

 

字符串str

 

# 整型
# int(对象, base=进制) #字符转成对应进制数
a = '0011'
print(int(a, base=2)) #结果是3,先转换成2进制,在转换成10进制输出
print(int(a, base=8)) #结果是9,先转换成8进制,在转换成10进制输出
print(int(a, base=10)) #结果是11,先转换成10进制,在转换成10进制输出

# bit_length() #显示数值以2进制计算的宽度
a = 11 #二进制为1011长度为4
print(a.bit_length()) #结果为4

#字符串
# capitalize() #除首字母外其他均改为小写
s = 'aLexAlex'
t = s.capitalize()
print(t)
# upper() #均转换成大写字母
print(s.upper())
# lower()均转换成小写
print(s.lower())
# center(长度, 填充字符) #总字符长度,如果够长,则输出整个字符串即可;若原始字符达不到长度,则使用填充符两端填充
print(s.center(7, '*'))
# count(要查找的字符串,起始位置,终点位置)
print(s.count('le'))
# endswith('ex') #以字符串结尾,返回布尔型
print(s.endswith('ex'))
# find(待查找字符串,起始位置,终点位置) 返回待查找的字符串在整个字符串中的位置,如果找不到返回-1
print(s.find('le', 4, 7))
# 使用index()也能够查找到位置,但是如果找不到会报错
print(s.index('le'))


#格式化 将字符串中的占位符替换为指定的值
#使用变量格式化
# text = 'I am {name}, age {a}'
# print(text)
# print(text.format(name='lwj', a='20'))
# 使用序列格式化
# text = 'I am {0}, age {1}'
# print(text)
# print(text.format('lwj', 20))
# 使用字典格式化
text = 'I am {name}, age {a}'
print(text)
print(text.format_map( {'name':'lwj', 'a':'20'} ))


# 1.python官方定义中的字母:大家默认为英文字母+汉字即可
# 2.python官方定义中的数字:大家默认为阿拉伯数字+带圈的数字即可

# isalnum() 至少有一个字符且所有字符都是字母数字,那么返回结果就是True;否则含特殊字符,就返回False
t = '三a+_@'
print(s.isalnum())
# isalpha() 至少有一个字符且所有字符都是字母,那么返回结果就是True;否则,就返回False
t = '三a'
print(t.isalpha())
# isdigit() 至少有一个字符且所有字符都是数字,那么返回结果就是True;否则,就返回False
t = '三a'
print(t.isdigit())

# expandtabs(分割的字符串长度) # 吧字符串按照长度分割,\t制表符补充空格=长度-已填充的字符数
t = 'name\tage\taddr\nlwj\t17\t安徽\nlwj\t17\t安徽\nlwj\t17\t安徽\n'
print(t.expandtabs(10))

s = 'abc123\tde\tfghijk\tmn'
print(s.expandtabs(5)) #此时abc123超过5后面补充制表符,de不满足补充3空格,fghijk满足直接分割,mn在最后不需要补充

# isidentifier() # 满足数字、字母、下划线,即使是关键词,且不以数字开头即位True
t = ['_abc1', 'a_bc1', '1_abc', 'def', 'a+b']
for i in t:
    print(i.isidentifier()) # 结果分别是T,T,F,T,F

# s.isprintable() #如果存在不可显示的字符例如换行、制表符等,则为False
s = 'abc\tcde'
print(s.isprintable())

# title() #吧每个单词的首字母大写,变成标题的格式 istitle()则判断是否每个单词的首字母为大写
s = 'I am title'
print(s.title())
print(s.istitle())

# 将字符串以自定分隔符分割拼接
s = '今天天气不错'
print('_'.join(s))

# 固定长度左右中对齐,以*补齐
s = 'lwj'
print(s.center(5, '*'))
print(s.ljust(5, '*'))
print(s.rjust(5, '*'))

# 移除左右的所有空格,可传参strip('a'),则移除左右的字符a
s ='  AB C12 '
print(s.strip())
print(s.lstrip())
print(s.rstrip())
# 移除指定字符例如 lstrip(abcdef)

# 对应位置替换 例如abcde对应12345吧字符中含有的abcde对应替换为12345
m = str.maketrans('abcde','12345')
s = 'acdgefh'
print(s.translate(m))   #会把字符串s中的abcde对应替换为12345,结果为134g5fh

# partition('c') # 以制定分隔符分割字符串,并且吧分割符也当作一列输出,且只分割一次
s ='abcdcbabbcd'
print(s.partition('cd'))

# split('cd') #以指定字符为分隔符,分割全部字符串,不展示分割符列。可传参,分割几次
print(s.split('c',2))

# swapcase() # 转换大小写
s = 'happy new yeaR'
print(s.swapcase())

# 字符串切片
s = 'abcdefg'
print(s[2]) #取第三个字符
print(s[-1]) #取最后一个字符
print(s[2:3]) #取第三个字符,2-3不含3

#len()获取字符串、列表的长度
li = [11, 22, 'abcd']
s = 'abcdefg'
i = 0
while i < len(s):
    print(s[i])
    i += 1

# for 循环
for i in li:
    print(i)

# 替换
s = 'abcdabcdabcd'
print(s.replace('b', 'e'))

#range生成范围参数分别是,起始值,结尾值(不含结尾值),步长
n = range(1, 11, 2)
for i in n:
    print(i)

#小练习,根据用户输入,逐行输出用户输入的单个字符
text = input('请输入:')
for i in range(0, len(text)):
    print(i+1, text[i])

 

posted @ 2019-05-03 19:46  唐大侠的小迷弟  阅读(487)  评论(0编辑  收藏  举报