整形 字符串 列表

整型

其他进制转十进制

#通用形式
print(int('要转化的数字',数字的进制))
print(int('1100',2)) # int可以转第一个参数,后面的数表示的是第一个参数到底是什么进制 然后将其转成十进制 print(int('14',8)) print(int('c',16))

#手动转换
# 二进制转十进制  0,1
# 10 # 1*(2**1) + 0*(2**0) 2
# 八进制转十进制 0-7
# 235 # 2*(8**2) + 3*(8**1) + 5*(8**0)
# 十六进制转十进制 0-9 A-F
# 217 # 2*(16**2) + 1*(16**1) + 7*(16**0)

十进制转其他进制

# 10进制转二进制
# print(bin(12))  # 0b1100  0b表示后面的数字是二进制数
# 10进制转八进制
# print(oct(12))  # 0o14    0o表示后面的数字是八进制数  
# 10进制转16进制
# print(hex(12))  # 0xc     0x表示后面的数字是十六进制数
可变类型与不可变类型
¥ 可变类型:值改变的情况下,id不变,说明你改的是原值
¥ 不可变类型:值改变的情况下,id一定变
#可以理解成固定id不变情况下,值可以改变的为可变类型,值不能变化的为不可变类型

字符串

#字符串为不可变类型,方法不改变字符串的值,只能取不能存

字符串优先掌握的方法

 

 

1#索引取值(可正取,反取,只能取)
B = 'current leval'
print(B[4])     #输出 r
print(B[-4])    #输出 e
 
只能取不能改,但是列表里面可以改
A=[1,2,3]
A[0]=5
print(A)   #输出 [5,2,3]
2#切片取值(正向反向切 顾头不顾尾 步长)print(A[a1:a2:b])  
 //A为字符串,a1、a2为索引,b为步长默认为1从左到右取值,若果从右往左取值则改为负数
 //a1位置永远为头a2位置为尾,顾头不顾尾
A = '0123456789'
print (A[0:5])  # 01234   0和5为索引,顾头不顾尾
print (A[0:9:1])  #012345678  1为步长,默认为1,可以不写
print (A[0:9:2])  #02468  2为步长,隔一个数取一个,默认从左向右
print (A[0:5:-2])  # 空的  起点为0,步长取负数表示往左取,什么也没有
print (A[5:0:1])  # 空的 起点为索引5的位置,步长为正数向右取值超出范围,无值
print (A[5:0:-1])  # 54321 起点为5,步长为负数,向左取值,不顾尾取不到0
print (A[-1:-9:-1])  #98765432 涉及索引取值,索引-1为最右边第一个数
切片取值示例
3#长度 len()
统计字符串的字符个数(在容器类型中统计值的个数)
4#in  和 not in
print("cu" in 'current leval')  # True
print("cu" not in 'current leval')  # False
5#移除首尾   .strip()
多用于去除字符串首尾不想要的字符,默认去除空格,括号内加入什么字符就把什么字符从首尾去掉,支持多个字符同时去除
name = input ('please input name:').strip()  #防止手抖多输入空格报错
#补充  .lstrip() 和  .rstrip()为左移除只去除左边的和右移除只去除右边的
user='      egon       '
user='   x   egon       '
user="*******egon********"
user=" **+*  */***egon*  **-*****"
print(user.strip("* +/-"))   # 输出的全都是一个白白净净的egon
.strip()
#切分  .split('切除标识符',切除次数)
¥切分出来的数据自动生成一个列表,然后可以通过解压赋值一一取出
¥默认从左往右切,默认全切除非指定切除次数
#补充 .rsplit(‘切除标识符’,切除次数)  从右往左切
print(A.split('/'))  #['中国', '河南', '洛阳', '栾川']

print(A.split(''))  #['中国/河', '/洛阳/栾川']

print(A.split('/',2))  #['中国', '河南', '洛阳/栾川']

print(A.rsplit('/',2))  #['中国/河南', '洛阳', '栾川']
切分
#支持循环
A = 'abcde  123'
for i in A:
    print(i)
#输出结果为a b c d e 空格 1 2 3

 字符串需要掌握的方法

1.全部小写.lower()   全部大写.upper()

#方法不改变原本字符串的值
msg='aABBBBb'
res=msg.lower()  
print(res)   #aabbbbb
print(msg)  #aABBBBb 方法不改变值

2. 开头.startswith()和结尾.endswith()

#判断是否以...开头或者结尾
msg='alex is dsb'
print(msg.startswith('alex'))  #Ture  
print(msg.endswith('sb'))  #Ture
print(msg.endswith('b'))  #Ture

3.占位.format()的三种玩法(python推荐使用format做格式化输出)

# 第一种  按位置占位   跟%s原理一致
 str1 = 'my name is {} my age is {}'.format('jason',18)
 str1 = 'my name is {} my age is {}'.format(18,'jason',)
 print(str1)
# 第二种  按索引占位
 str1 = 'my {1} name is {0} my {0} age is {0}'.format('egon',18)
 print(str1)
# 第三种  指名道姓占位(关键字传参)
 str1 = 'my {name} name is {age} my {name} age is {name}'.format(name='jason',age=18)
  print(str1)

4.拼接容器.join()

# 将容器类型中的多个元素通过指定字符拼接成一个字符串(与切分.split相反)
#字符串名称='拼接符'.join(容器名称)
ata = 'jason|123|handsome'
res_list = data.split('|')
print(res_list)  # ['jason', '123', 'handsome']

res_str = '$'.join(res_list)  
print(res_str)  #jason$123$handsome

5.替换replace

#将字符串中的部分字符替换掉
# 字符串名称=被替换名称.replace('被替换字符','替换字符',替换个数)
str = 'egon is dsb and egon is sb he has a BENZ' res = str.replace('egon','kevin',1)
print(str)  #egon is dsb and egon is sb he has a BENZ
print(res)  #kevin is dsb and egon is sb he has a BENZ

6.判断是否为纯数字.isdigit()

#字符串名称.isdigit()  支持二进制和十进制, 够用了 ,其他两种了解即可
while True:
    age = input('>>>:')
    if age.isdigit():
        age = int(age)
        if age > 28:
            print('阿姨好')
    else:
        print('你他妈的能不能好好输')

需要了解的内置方法

1、find,rfind,index,rindex,count
s = 'kevin is dsb o and kevin is sb'
print(s.find('dsb'))  # 9  返回的是d字符所在的索引值
print(s.find('xxx'))  #-1  找不到的时候不报错返回的是-1
print(s.find('i',0,3))  #-1 还可以通过索引来限制查找范围,超出范围也不会报错
# 
print(s.index('o'))  #13 返回所传字符所在的索引值
print(s.index('i',0,3))  #报错 返回所传字符所在的索引值,但是超出索引范围后直接报错,find只返回-1不报错
#
print(s.count('n'))  #3  统计字符出现的次数

2.字符填充center,ljust,rjust,zfill

s9 = 'jason'
print(s9.center(12,'*')) #字符串长度12,将s9居中两边均匀填充*
# 
print(s9.ljust(40,'$'))  #字符串长度40,将s9居左,右边全部填充$
print(s9.rjust(40,'$'))
print(s9.rjust(40,' '))
# 
print(s9.zfill(40))  #字符串长度40,将s9居右前边全部填充0  z为zer

3.扩充制表符

s10 = 'a\tbc'  #\t为制表符
print(s10.expandtabs(100))  #填充一百个制表符

4.局部大小写captalize,swapcase,title

s12 = 'hElLo WoRLD sH10'
print(s12.capitalize())  # Hello world 首字母大写
print(s12.swapcase())  # 大小写互换位置
print(s12.title())  # 每个单词的首字母大小

5.is数字系列

4' #bytes  二进制
num2=u'4' #就是阿拉伯数字 unicode,python3中无需加u就是unicode
num3='' #中文数字
num4='' #罗马数字
# ''.isnumeric(): unicode,中文数字,罗马数字    只要是表示数字都识别,不识别二进制
print(num2.isnumeric())
print(num3.isnumeric())
print(num4.isnumeric())

# ''.isdecimal(): unicode   只识别普通的阿拉伯数字
print(num2.isdecimal())
print(num3.isdecimal())
print(num4.isdecimal())

# ''.isdigit() :bytes,unicode    能识别阿拉伯和二进制通常情况下使用isdigit就已经满足需求了,推荐使用
print(num1.isdigit())
print(num2.isdigit())
print(num3.isdigit())
print(num4.isdigit())
View Code

列表

 

 

#列表为可变类型

A = [1,2]
A[0] = 69
print(A) #[69, 2] 列表为可变类型,可赋值
# list内部原理就是for循环取值 然后一个个塞到列表中去,括号内必须放容器类型
#A = [a,x,c] 实质为 A = list([a,x,c])
A=list('abcd')
print(A)  #['a', 'b', 'c', 'd']
l1=list({'name':'jason','password':'123'})
print(l1)  #['name', 'password']

1、按索引存取值(正向存取+反向存取):即可存也可以取

l = [1,2,3,4]
print(l[0])  #1  

2.切片(顾头不顾尾,步长)

l = [1,2,3,4]
print(l[0:4:1])  #[1, 2, 3, 4]  04为索引,1为步长
print(l[0::])  #[1, 2, 3, 4]   索引不写默认0,步长默认1
print(l[5::-1])  #[4, 3, 2, 1]  可以反向取值

3.长度

l=['egon','lxx','yxx',444,555,66666,[1,2,3]]
print(len(l))  #7

4.成员运算in和not in

l=['egon','lxx','yxx',444,555,66666,[1,2,3]]
print('lxx' in l)  #True
print(444 in l)  #True

5.往列表中添加元素******

尾部追加'单个'元素******append

l=['egon','lxx','yxx']
l.append(44444)  
l.append(55555)  
print(l)  #'egon', 'lxx', 'yxx', 44444, 55555]

往指定索引前添加'单个'元素******insert

l=['egon','lxx','yxx']
l.insert(0,11111)
print(l)  #[11111, 'egon', 'lxx', 'yxx']
l.insert(2,2222222)
print(l)  #[11111, 'egon', 2222222, 'lxx', 'yxx']

一次性添加多个元素******extend

#将容器类型中多个元素依次取出,从尾部依次添加
l = ['jason','nick'] l.extend(['tank','sean']) #内部原理for循环+append 一个个追加到列表中 print(l) #['jason', 'nick', 'tank', 'sean']

6.删除 del remove pop

l=['egon','lxx','yxx']
# 方式1:
del l[1] # 通用的,适用所有数据类型删除
print(l)  #['egon', 'yxx']

# 方式2:
res=l.remove('lxx') # 指定要删除的值,返回是None
print(l,res)  #None

# 从列表中弹出一个值 ******
res=l.pop(-1) # 按照索引弹出值(默认是从末尾弹出),返回弹出的那个值
print(l,res)  # ['egon', 'lxx'] yxx

l=['egon','lxx','yxx']
l.pop()
l.pop()
print(l)  #['egon']

7.循环

l=['egon','lxx','yxx']
for item in l:
    print(item)  #gon  lxx  yxx

 8.reverse() # 将列表反转

l= [1,2,3,4]
print(id(l))  #31946184
l.reverse()  # 将列表反转
print(id(l))  #31946184
print(l)  #[4, 3, 2, 1]

9.clear() #清除

l= [1,2,3,4]
print(id(l))  #32011720
res = l.clear()
print(l)  # []
print(res)  #None
print(id(l))  #32011720

10.sort() 排序 默认情况下是从小到大(升序)

l1 = [43,6,1,7,99]
l1.sort()  # [1, 6, 7, 43, 99] 
print(l1)
l1.sort(reverse=True)  #[99, 43, 7, 6, 1] 可以通过指定参数来修改默认的拍讯规则(降序)
print(l1)

11.# 队列 先进先出

# l1 = []
# 先进
# l1.append('first')
# l1.append('second')
# l1.append('third')
# # 先出
# print(l1.pop(0))  #0为索引,不写索引默认索引为-1从后往前弹出
# print(l1.pop(0))
# print(l1.pop(0))

12.堆栈 先进后出

 
  
# l1 = []
# 先进
 l1.append('first')
 l1.append('second')
 l1.append('third')
# 后出
 print(l1.pop())
 print(l1.pop())
 print(l1.pop())

 

 

转载于:https://www.cnblogs.com/xp1315458571/p/11127247.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值