整型以及布尔值的转换 字符串详解

时间:2022-12-12 17:50:40

整型以及布尔值转换

整型 -- 数字 (int)

整型(数字)用于比较和运算

计算机支持的数字范围

32位 ---2 ** 31 -1 ~ 2 ** 31 -1

64位 ---2 ** 63 -1 ~ 2 ** 63 -1

Python2和Python3在整型中的区别

python2 整型 int -- long(长整型) /获取的是整数
python3 整型 int / 获取的是浮点数(小数)

二进制和十进制

456  ----- 十进制数
0101 ----- 二进制数
除此之外还有:
十六进制  八进制  二进制

二进制和十进制的计算

十进制转2进制:
例:将15转换成2进制
15    1

7     1

3     1

1     1
除以2取余,自下而上依次取余数,所以15的二进制数为1111

24    0

12    0

6     0

3     1

1     1

24的二进制数为11000
186     0

93      1

46      0

23      1

11      1

5       1

2       0

1       1

186的二进制数为10111010

print(bin(186))  # 十进制 -- 二进制
二进制转十进制:
10111010
自右向左计算

0*2**0 + 1*2**1 + 0*2**2 + 1*2**3 + 1*2**4 + 1*2**5 + 0*2**6 + 1*2**7=0+2+0+8+16+32+64=186

print(int("10111010",2))  # 将二进制转换成十进制

bool() 布尔值

print(bool(1))  # 数字非零的就是True 零就是False

print(bool("")) # 字符串不为空就是True(有空格也是不为空) ,字符串中没有任何内容就是False

字符串详解

在python中引号引起来就是字符串

字符串是用来存储少量数据

name = "m e a t" # meat 每一个字母叫做一个元素      
      # 0 1 2 3    从左向右     
      #-4-3-2-1    从右向左      
      # 索引(下标) 通过索引可以精确的定位到某个元素

print(name[-1])   # t

切片

name = " 今天是个 好日子"
       # 0 1 2 3 4 5 6
       #-7-6-5-4-3-2-1
a = name[0]        #今
b = name[1]        #天
print(a+b)         #今天

print(name[0:2])   # 顾头不顾尾  name[起始位置:终止位置]
print(name[:])     # 某个位置不指定的时候默认取最后或最前
print(name[2:5])   # 是个好
print(name[-4:-1]) # 个好日

print(name[-2:-5])    # 输出为空
print(name[-2:-5:-1]) # [起始位置:终止位置:步长] 步长默认为1

例:

name = "大黑哥吃大煎饼"
print(name[1:5])        #黑哥吃大
print(name[-2:-6:-1])   #哥吃大煎
print(name[-6:6])       #黑哥吃大

取第1.3.5.7位置的字
a = name[0]
b = name[2]
c = name[4]
d = name[6]
print(a+b+c+d)
运用步长:
print(name[::2])       #步长为2,所以每两个取一个

print(name[100:105])   #切片的时候起始位置和终止位置都超出的时候不会进行报错
print(name[100])       #索引的时候索引值超出范围的时候会报错

练习:

s = 'Python最NB'
获取s字符串中前3个内容
print(s[:3])
获取s字符串中第3个内容
print(s[2])
获取s字符串中后3个内容
print(s[-3:])
获取s字符串中第3个到第8个
print(s[2:-1])
获取s字符串中第2个到最后一个
print(s[1:])
获取s字符串中第1,3,5个内容
print(s[:5:2])
获取s字符串中第2,4,6个内容
print(s[1:6:2])
获取s字符串中所有内容
print(s)
获取s字符串中第4个到最后一个,每2个取一个
print(s[3::2])
获取s字符串中倒数第5个到最开始,每3个取一个   print(s[-5::-3])

字符串的方法:

S系列

s = "ALEX"
s1 = s.upper() #全部大写
print(s1)

s1 = s.lower() # 全部小写
print(s1)

应用场景
s = input("验证码(AbC5)")
if s.upper() == "AbC5".upper():
    print("验证码正确")
else:
    print("验证码错误!")

以....开头:
s = "ALEX"
s1 = s.startswith("A") 
print(s1)      #True

s1 = s.startswith("E",2,6)
print(s1)      #True

以....结尾:
s = "ALEX"
s1 = s.endswith("X")
print(s1)      #True

统计
s = "alexdxjbx"
s1 = s.count("x")
print(s1)      # 3

脱: 字符串头尾两端的空格和换行符以及制表符
n = input(">>>")
if n.strip() == "alex":
    print("1")
else:
    print("2")       #输入"  alex  "  输出"1"

s = "alexdsba"
s1 = s.strip("a") # 可以指定内容取脱
print(s1)         # lexdsb


分割:以空格和换行符以及制表符进行分割
s = "aelxlaaa"
s1 = s.split("l")  # 可以通过指定方式进行切割   
print(s1)         # "ael","laaa"

s = "aelxlaxaa"
s1 = s.split("l",maxsplit=1)  # 存在多个可切割目标时,可用maxsplit来指定切割次数,maxsplit=1即切割次数为1
print(s1)         # "ael","laxaa"

s = "aelxlaxaa"
s1 = s.rsplit("l",maxsplit=1)  # 存在多个可切割目标时,用maxsplit指定切割次数后,可在split前加"r"来更改切割优先方向
print(s1)         # "aelx","laaa"


替换:
s = "大黑哥吃肉夹馍"
s1 = s.replace("肉夹馍","大煎饼")
print(s1)           # 大黑哥吃大煎饼

s = "大黑哥吃肉夹馍,肉夹馍"
s1 = s.replace("肉夹馍","大煎饼",1) # 指定替换的次数
print(s1)           #大黑哥吃大煎饼,肉夹馍

is系列

s = "12.3"
print(s.isalnum())     # 判断是不是字母,数字,中文print(s.isalpha())     # 判断是不是字母,中文print(s.isdigit())     # 判断字符串是不是全都是阿拉伯数字print(s.isdecimal())   # 判断是否是十进制

for 循环

print(len(name))     # 计算字符串的字符数量

name =  "你好啊"
count = 0
while count < len(name):
    print(name[count])
    count += 1

# 
你
好
啊

name = 你好啊
for x in name:  # for循环
    print(x)

#
你
好
啊

for 关键字
i 是变量名
in 关键字
name 可迭代对象

错误的示范:
name = True
for i in name:
    print(i) # 数据类型中只有整型和布尔值不能够进行for循环