整型和布尔类型的转换 & 字符串详解 & for循环

整型以及布尔值转换

整型

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

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

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

+ - * / // ** %

十进制,二进制,十六进制,八进制,二进制

十进制表示方法:123456

二进制表示方法:0101

十进制——二进制(从下往上➗2)

15    1
7     1
3     1
1     1
####################
188     0
94      0
47      1
23      1
11      1
5       1
2       0
1       1     # 从下往上计算

验证方法:print(bin(10111100))

二进制————十进制(从右到左,乘以2的次方(0次幂依次➕1))

10111100
# 从右向左进行计算
0*2**0 + 0*2**1 + 1*2**2 + 1*2**3 + 1*2**4
+ 1*2**5 + 0*2**6 + 1*2**7
=0 + 0 + 4 + 8 + 16 + 32 + 0 + 128 =188
10101
1 * 2 ** 0 + 0 * 2**1 + 1* 2**2 + 0 * 2**3 + 1* 2 **4
= 1  +  0 + 4 + 0 + 16
验证方法:print(int("10101",2))  
bool

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

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

字符串详解

回顾:在python中引号引起来就是字符串,字符串是用来存储少量数据

索引
name = "lily"
# lily 每一个字母叫做一个元素
      # 0123       从左向右
      #-4-3-2-1    从右向左
      # 索引(下标) 通过索引可以精确的定位到某个元素
验证方法:print(name[-1])
name = "今天是个好日子"
       # 0 1 2 3 4 5 6
       #-7-6-5-4-3-2-1
a = name[0]
b = name[1]
print(a+b)
切片
name = "lily"
print(name[0:2])   # 头不顾尾name[起始位置:终止位置]
print(name[:])     # 某个位置不指定的时候默认取最后或最前
print(name[2:5])
print(name[-2:-5]
print(name[-2:-5:-1]) # [起始位置:终止位置:步长] 步长默认为1
print(name[-6:6])

a = name[0]
b = name[2]
c = name[4]
d = name[6]
print(a+b+c+d)
print(name[::2])

print(name[100:105]) #切片的时候起始位置和终止位置都超出的时候不会进行报错
print(name[100])  # 索引的时候索引值超出范围的时候回报错
s = 'Python最NB'
# 获取s字符串中前3个内容
print(s[0:3])
# 获取s字符串中第3个内容
print(s[2])
# 获取s字符串中后3个内容
print(s[-3:])
# 获取s字符串中第3个到第8个
print(s[2:8])
# 获取s字符串中第2个到最后一个
print(s[1:])
# 获取s字符串中第1,3,5个内容
print(s[0:6:2])
# 获取s字符串中第2,4,6个内容
print(s[1:7:2])
# 获取s字符串中所有内容
print(s[:])
# 获取s字符串中第4个到最后一个,每2个取一个
print(s[3::2])
# 获取s字符串中倒数第5个到最开始,每3个取一个
print(s[-5::-3])
s = 'Python最NB'
print(s[-5::-3])

字符串的方法:

s = "ALEX"

全部大写

中文和数字不好使

s = "ALdv"
s1 = s.upper() #全部大写
print(s1)
全部小写
s = "ALdv"
s1 = s.lower() # 全部小写
print(s1)

# 应用场景
s = input("验证码(AbC5)")
if s.upper() == "AbC5".upper():
    print("验证码正确")
else:
    print("验证码错误!")
以什么开头
s = "ALEX"
s1 = s.startswith("E",2,6)
print(s1)
以什么结尾
s = "ALEX"
s1 = s.endswith("X",3,4)
print(s1)
统计
s = "alexdxjbx"
s1 = s.count("x")
print(s1)

字符串头尾两端的空格和换行符以及制表符

n = input(">>>")
if n.strip() == "alex":
    print("1")
else:
    print("2")
    
# 指定内容脱
s = "alexdsba"
s1 = s.strip("a") # 可以指定内容取脱
print(s1)
分割

以空格和换行符以及制表符进行分割

s = "aelxlaaa"s.
s1 = s.split("l",maxsplit=1)  # 可以通过指定方式进行切割
print(s1)
替换
s = "大黑哥吃肉夹馍,肉夹馍"
s1 = s.replace("肉夹馍","大煎饼")
s1 = s.replace("肉夹馍","大煎饼",1) # 指定替换的次数
print(s1)
is系列
print(s.isalnum()) # 判断是不是字母,数字,中文
print(s.isalpha())  # 判断是不是字母,中文
print(s.isdigit())  # 判断字符串是不是全都是阿拉伯数字
print(s.isdecimal())  # 判断是否是十进制

For 循环

for 关键字
i 是变量名
in 关键字
name 可迭代对象
# 注意⚠️:数据类型中只有整型和布尔值不能够进行for循环
# ⚠️重点面试题
s = "abcds"
for x in s:
    pass
print(x)    # 输出结果是's'
name = "ales"
for x in name:
    print(x) # 遍历输出每个元素
print(x) # 输出s

s = "     5"
print s       # 输出结果带空格
print int(s)     # 输出结果不带空格

下面是一个循环打印的例子:

# 利用三引号原样输出
print("""
你
好
啊
""")

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

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

# 字符串拼接
i = "你"
print(i)
i = "好"
print(i)
i = "啊"
print(i)

# for循环需注意
# 数据类型中只有整型和布尔值不能够进行for循环
name = "alex"
for x in name:
    print(x)
print(x)

# 错误的示范
name = True
for i in name:
    print(i)