PYTHON -- 基础3

1.数据类型

1.int 类型 用于计算

1.1 bit_length() 

  转换为2进制的最小位置 有效的

i = 5
print(i.bit_length())

 

i 二进制 i.bit_length()
1 0000 0001 1
2 0000 0010 2
5 0000 0101 3

 

2.boot :布尔值 T F 用于判断

转换问题 

2.1 int---str

i = 1

str(i)

没有条件

2.1.2 str---int

只能是数字转换

s = '123'  //'123w'不行//

i = str(s)

2.2 int --- bool

i = 3

b = bool(i)

PS:只要是0 就是False  非0就是True

2.2.1 bool ---int

True ---1   False---0

2.3 转换效率问题

while True:
    pass
while 1: 
    pass

下面的要比上面的效率高

2.4 str---bool

2.4.1

s = "" -----> False
非空字符串都是True
s = "0" -----> True
 s
 if s:
     print('你输入的为空,请重新输入')
 else:
     pass

 

3.str类型: 存储少量数据,进行操作 !!! 有引号引起来的 “XXXX”

3.1 字符串的索引和切片

字符串 是有顺序的 有序号的

   s =‘ASD456FGG’

序号  0123456789

假如要取出A   只用输出序号即可

# s1 = s[0]
# print(s1)

S1 同时也是字符串 对字符串进行操作 产生的也是字符串

取出来的和原来的没有影响

3.2 切片  // 固头不过尾//

要取出ASD4

# s5 = s[0:4]
# print(s5)

而不是[0:3]

3.2.1 反向取值

# s3 = s[-1]

# print(s3)

PS: 从正向取值就从0开始,反向就从 -1开始取值 但是要想全部取出来 就是s[0:-2] 因为切片是固头不固尾

 

3.3 取中间跳着取

s = 'ABCDLSESRF'  # s[首:尾:步长]
# s10 = s[0:5:2]
PS :步长必须是等长的
反向取
# print(s10)
s11 = s[4:0:-1]
但是这样会出LDCB 不会有A 若要有A 应该:
print(s11)
s12 = s[4::-1]
PS 主要是倒着着取 开头都是-1 同时 步长的 正负代表方向
 

4.list:列表 存储大量的数据 [ 123,123, ] 逗号分隔为1组

5.元祖:和列表一样存储大量数据 (132,123) 但是元祖是只读列表:只能读取,不能修改!

6.dict :字典 {‘name’:‘tom’,‘age’:‘16’}储存关系的 成对的,可以对应列表 。同时字典的查询的速度非常快

7.集合:{1,2,3}只能储存数据  

8.字符串的操作

8.1 字符串的首字母大写

a ='wangjiade'
a1 = a.capitalize()
print(a1)

输出 a1 = Wangjiade

8.1.2 字符串全部大写

a ='wangjiade'
a1 = a.upper()
print(a1)

输出 a1 = WANGJIADE

 

8.1.3 字符串全部小写

a ='wangjIade'
a1 = a.lower()
print(a1)

输出a1 = wangjiade

 

应用实例 :输入大小写

zm = 'CAcs4'
you_input =input('请输出验证码,不区分大小写')
if zm.upper() == you_input.upper():
    print('success')
else:
    print('fall')

PS zm.input.lower 也可以!

8.1.4 大小写翻转

a ='JohnNoenscc'
a1 = a.swapcase()
print(a1)

输出 a1 = jOHNnOENSCC

8.1.5 各个首字母大写

a ='john tom jerry mary'
a1 = a.title()
print(a1)

PS 以空格个开的 中间也可以是特殊字符 !@#¥%……12

输出:John Tom Jerry Mary

8.1.6 居中

a ='jsdasdQy'
a1 = a.center(20)
print(a1)

PS 20的开头的距离 center(中间必须打数字。‘填充物’)

 8.1.7 补8个位 tab

a ='jsda\tsdQy'
a1 = a.expandtabs()
print(a1)

jsda(四个空格 前面有四位了)sdQy

8.2 公用长度

a = 'ghfsdjafdasfq34123sad飞'
l = len(a)
print(l)

站位数字 中文也算

8.3 寻找以什么为开头

#以什么开头结尾 endswith
# s = 'alexWUsir'
# s7 =s.startswith('alex')
# s71 = s.startswith('e',2,5)
# print(s71)
#输出 T exW

8.4 find 通过元素 输出索引 找不到返回-1

      index 通过元素找所以 找不到就报错

s = 'horeismy'
s1 = s.find('s')
print(s1)

8.5 strip 默认删除前后的空格

strip(‘里面打入什么 就是删掉什么 什么都不加 就是默认删除空格’) 但是只删除前后 中间不删除

s = ' *a%lexWUsi* r%'
s91= s.strip(' %*')
print(s91) 

输出为a%lexWUsi* r

PS :如果要想从左删除就是rstrip  从右删除就是lstrip

8.6 count 查询 单个字符

有就输出对应个数 没有就输出0个 可以组合查询

s = 'alexaa wusirl'
s10 = s.count('al')
print(s10)

输出为1

8.7 split 分隔切割  

默认以空格为切分 split(中间写入什么就以什么来分割)

# s = ';alex;wusir;taibai'
# l = s.split(';')
# print(l)

PS 同时注意以什么为分隔 那么输出时候 分隔的东西会消失  比如上面的;输出来就没有了

8.8format 格式化输出 和%s一样

# s = '我叫{},今年{},爱好{},再说一下我叫{}'.format('TOM',22,'girl','tom')
# print(s)
# name = input('请输入名字:')
# s = '我叫{0},今年{1},爱好{2},再说一下我叫{0}'.format(name,36,'girl')
# print(s)
# name = input('请输入名字:')
# s = '我叫{name},今年{age},爱好{hobby},再说一下我叫{name}'.format(age=18,name=name,hobby='girl')
# print(s)

 

PS 注意要按照顺序  {}=%s的%

 

8.9 字符的替换 replace

s = '我喜欢隔壁的大哥,隔壁的大哥也喜欢我'
s11 = s.replace('大哥','老王',2)
print(s11)

最后的数字是 替换的次数 

 8.10 is

name = 'jijiji888'
print(name.isalnum())#数字和字母
print(name.isalpha())#只能有字母
print(name.isdigit())#只能有数字

 

posted @ 2019-04-21 16:36  花样打球蔡徐坤  阅读(451)  评论(0编辑  收藏  举报