python基础数据类型之整数,布尔值,字符串(基础一)

第三章 python基础数据类型之整数,布尔值,字符串(基础一)

python基本数据类型

  1. int ==> 整数. 主要⽤用来进⾏行行数学运算
  2. str ==> 字符串串, 可以保存少量量数据并进⾏行行相应的操作
  3. bool==>判断真假, True, False
  4. list==> 存储⼤大量量数据.⽤用[ ]表⽰示
  5. tuple=> 元组, 不可以发⽣生改变 ⽤用( )表⽰示
  6. dict==> 字典, 保存键值对, ⼀一样可以保存⼤大量量数据
  7. set==> 集合, 保存⼤大量量数据. 不可以重复. 其实就是不保存value的dict

3.1 整数 int

  1. 计算和比较

二进制转换成十进制

14转换成十进制

14  0  # 十进制
7   1
3   1
1   1
128 64 32 16 8 4 2 1
print(2**0)  1
print(2**1)  1
print(2**2)  1
print(2**3)  1
print(2**4)  1
print(2**5)  1
print(2**6)  1
print(2**7)  1

十进制转换成二进制

bit_length() 计算整数在内存中占用的二进制码的长度

num = 7   # 8421   00000111
print(num.bit_length())  
求十进制数转换成二进制时所占用的位数
十进制 二进制 长度bit_length()
1 1 1
2 10 2
3 11 2
4 100 3
5 101 3
6 110 3

3.2布尔值(bool)

取值只有True False,布尔值没有操作,其他用于条件使用

3.2.1布尔转换

数字转换成bool ==>数字0 是False,数字非0 是True

print(bool(-10)) # 0 是 False  非0的都是True

字符串转换成bool ==> 空字符串 是False,非空字符串是True

print(bool(" ")) #空的字符串是 False 非空的就时True

bool 转换成字符串

print(type(str(True))) #布尔值可以转换成字符串

bool转换成数字==>True 转化成数字 1 False 转换成数字 0

print(int(False))      
# True 转化成数字 1   False 转换成数字 0

3.3字符串str

字符串用于存储较少的数据,在python中只要用 " " , ' ' , ''' '''.引号引起来的就是字符串。

3.3.1索引

索引(下标):一排数字,反应第某个位置的字符,索引的下标从0开始,使用[ ]来获取数据

从左到右 0,1,2,3 从右到左 -1,-2,-3 查找时超出范围会报错

name = "meet,alex,wusir,wangsir,Eva_j"
   #   01234567  (索引)     #从左向右数数
   #  -4-3-2-1 (索引) # 从右向左数数
   

3.3.2切片

我们可以使⽤用下标来截取部分字符串串的内容

语法: str[start: end]

规则: 顾头不顾腚, 从start开始截取. 截取到end位置. 但不包括end

s2 = "meet,alex,wusir,wangsir,Eva_j"

print(s2[0:3])  # 从0获取到3. 不不包含3. 结果:mee
print(s2[6:8])  # 根据顾头不不顾腚, 想要取到8必须给9,结果: le ,

print(s2[4:])   # 如果想获取到后. 那么后⼀一个值可以不不给.
print(s2[-1:-5])    # 从-1 获取到 -5 这样是获取不不到任何结果的. 从-1向右数. 你怎么数 也数不不到-5
print(s2[-5:-1])    #顾头不不顾腚. 结果:Eva_
print(s2[-5:])      # 什么都不不写就是-5开始往0取结果:Eva_j
print(s2[:-1])      # 这个是取到倒数第⼀一个结果:meet,alex,wusir,wangsir,Eva_
print(s2[:])        # 原样输结果:meet,alex,wusir,wangsir,Eva_j

3.3.3步长

如果是整数, 则从左往右取. 如果是负数. 则从右往左取. 默认是1

语法: str[start🔚step] start: 起始位置 end: 结束位置 step:步

s2 = "meet,alex,wusir,wangsir,Eva_j"
print(s2[1:5:2])  # 从第⼀一个开始取, 取到第5个,每2个取1个, 结果: et
print(s2[:5:2])     # 从头开始到第五个. 每两个取⼀一个结果:me,
print(s2[4::2])     # 从4开始取到后. 每两个取⼀一个结果:,lxwsrwnsrEaj
print(s2[-5::2])    # 从-5取到后.每两个取⼀一个  结果:Eaj
print(s2[-1:-5])    # -1:-5什什么都没有. 因为是从左往右获取的.结果空
print(s2[-1:-5:-1])  # 步⻓长是-1. 这时就从右往左取值了了 结果:j_av
print(s2[-5::-3])   # 从倒数第5个开始. 到开始. 每3个取⼀一个, 结果:Ein,s,ltm

3.3.4字符串常用方法

切记, 字符串串是不可变的对象, 所以任何操作对原字符串串是不会有任何影响的

upper 全部大写

name = "meet"
name1 = name.upper()
print(name1)

lower 全部小写

name = "MEET"
name1 = name.lower()
print(name1)

应⽤用, 校验⽤用户输⼊入的验证码是否合法

yzm = "o98K"
input_yzm = input("请输入验证码(o98K):")
if yzm.upper() == input_yzm.upper():
    print("正确")
else:
    print("错误")

startwith() 以什么开头,大小写互相转换

name = "alex"
print(name.startswith('a'))  # 就是以a开的头

endswith 以什么结尾

name = "zhuxiaodidi"
print(name.endswith("i"))   # 就是以i结尾

strip 去头尾空格---默认去掉空格和换行符

除去头尾两边的空格  脱   *****
name = " alex   "
name1 = name.strip()  # 可以写想要去掉的内容
print(name1)
if name == "alex":
    print(666)

name = "   alex     "
print(name.strip())

split 分割 默认是空格分割

默认是以空格分割,也可以自己制定分割,分割后返回的内容是一个列表

分割    *****
name = 'alex,wusir'
print(name.split("w"))

replace 替换 第一个参数是旧 ,第二个参数是新

替换  ****
name = "alexnbnsnsn"
name1 = name.replace('n','s')  #替换
name1 = name.replace('n','s',2) #替换2是替换的次数
print(name1)

count 统计 统计某个内容出现的次数

count # 统计
name = "zhudidi"
print(name.count("zhu"))  # 查询某个内容出现的次数

format() 第三种字符串格式

name = "alex{}wusir{}"
name1 = name.format('结婚了',"要结婚了")  # 按照位置顺序去填充的

name = "alex{1}wusir{0}"
name1 = name.format('结婚了',"要结婚了")    # 按照索引位置去填充

name = "alex{a}wusir{b}"
name1 = name.format(a="结婚了",b="马上结婚")  # 指名道姓,指定关键字填充
print(name1)

3.5 is系列判断

isdecimal 判断的是不是十进制

name = "666"
print(name.isdecimal()) #判断是不是十进制--用它来判断是不是数字
name = "②"
print(name.isdigit())  # 判断是不是阿拉伯数字

isalnum 判断的是不是中文,字母,数字

name = "alex666"
print(name.isalnum())     # 判断的是不是字母,中文和阿拉伯数字

isalpha 判断的是不是中文,字母

name = "alexs你好"
print(name.isalpha())    # 判断的是中文和字母

判断某个字符串是否是小数

s17 = "-123.12"
s17 = s17.replace("-", "")  # 替换掉负号
if s17.isdigit():
    print("是整数")
else:
    if s17.count(".") == 1 and not s17.startswith(".") and not s17.endswith("."):
        print("是⼩小数")
    else:
        print("不不是⼩小数")

3.5 for 循环

for 关键字

i 变量(可以人为修改)

in 关键字

s 可迭代对象 去除(int - bool)

for a in "alex":
    print(a)
s19 = "⼤大家好, 我是VUE, 前端的⼩小朋友们. 你们好么?"
#用while循环
index = 0
while index < len(s19):
    print(s19[index])   # 利利⽤用索引切⽚片来完成字符的查找
    index = index + 1
for c in s19:   #for循环, 把s19中的每⼀一个字符拿出来赋值给前⾯面的c
    print(c)
print('VUE' in s19)

3.6 range 范围

range() #范围

python3 打印是自己本身

python2打印是列表

range(起始位置,终止位置,步长)

range(10) ---range(终止位置) ,起始位置0

s = range(1,10)  # 面试大坑  python2 和 python3
print(s)  # 范围
for i in  range(1,10,2): # (起始位置,终止位置,步长) # range(10) 指定了终止位置,起始位置默认是0
    print(i)
for i in range(100,-11,-1):
    print(i)

起始位置0

for i in range(1):
     print(i)
posted @ 2019-06-09 18:54  wushe  阅读(325)  评论(0编辑  收藏  举报