day03笔记
1.整型和布尔值
2.字符串详解(常用的方法
3.for循环
1.整型和布尔值
python3: in
python2: int,long(长整型)
num = 15
print(num.bit_length())
结果为4
十进制 -- 二进制
# 15 1
# 7 1
# 3 1
# 1 1
# 0
# 34(十进制)
# 32 16 8 4 2 1
# 1 0 0 0 1 0
二进制 -- 十进制
# 1*2**0 + 0*2**1 + 1*2**2 + 0*2**3 + 1*2**4 + 1*2**5
# 1 + 0 + 4 + 0 + 16 + 32
# 45 十进制转二进制
# 32 16 8 4 2 1
# 1 0 1 1 0 1
bin -- 将十进制转换成二进制
print(bin(45))
int -- 将二进制转换成十进制
print(int("101101",2))
print(int(0b101101))
布尔值:
类型转换
数字中只有0是False,其余的都为True
字符串中只要有内容就是True,没有内容就是False
print(bool(""))
print(type(str(False)))
print(int(True))
print(int(False))
2.字符串详解
s = "meet"
字符串中的元素(字母)
字符串:存储一些数据的
字符串是有序
字符串是不可变的
索引:准确且快速找值
s = "meet"
0123 # 从左向右 -4-3-2-1 # 从右向左
s[0] # 通过索引准确查找元素
切片:
顾头不顾
print(s[0:10]) # [起始索引 : 终止索引]
print(s[-6:]) # [起始索引 : 默认获取字符串末尾的内容]
print(s[:]) # [默认获取字符串开始的内容 : 默认获取字符串末尾的内容]
对比:
s = "alex_wusir|oldboy"
索引:
print(s[20]) #报错: string index out of range 索引超出范围会报错
切片:
print(s[1:100]) # 切片超出索引值不会报错
步长
s = "alex_wusir|oldboy"
print(s[0:5:2])
步长默认为1 开始索引:结束索引: 步长
步长可以决定查找方向和迈的步子,可正着取,可倒着取
回文
上海自来水来自海上
while True:
msg = input("请输入内容:") # 12321#
if msg == msg[::-1]: # 将字符串进行反转#
print("这是回文")#
else:
print("请重新输入!")
3.字符串操作方法
s1 = s.strip()
默认去除头尾两端的空格及换行符,制表符(Tab) *****
s1 = s.strip("a")
s2 = s1.split("+")
分割 默认用空格,换行符,制表符,返回的是一个列表
s1 = s.split("-",maxsplit=1) 不指定maxsplit默认全部都分割
s1 = s.replace("n","s",1)
替换(旧,新,替换次数)
过滤铭感词
s = "TMD"
msg = input(">>>")
if s in msg:
msg = msg.replace(s,len(s) * "*") # len求长度#
print(msg)
1.实现一个计算器,这个计算器只支持加法和减法,只支持三个数.例如(11 + 22 - 12)
s = input("请输入要计算的公式:")
s1 = s.replace("-","+-")
s2 = s1.split("+") # s2是一个列表,列表支持索引
print(int(s2[0]) + int(s2[1]) + int(s2[2]))
s1 = s.upper()
全部大写
s2 = s.lower()
全部小写
验证码不区分大小写
s = "XbGj"
msg = input("请输入验证码(XbGj):")
if msg.upper() == s.upper():
print("成功!")
else:
print("失败")
import random # 随机数
ascii
48 - 57 数字
65 - 90 大写
97 - 122 小写
print(chr(97)) # 通过十进制查找编码上对应的字符
自动生成验证码:
s = f"{chr(random.randint(48,57))}{chr(random.randint(65,90){chr(random.randint(97,122))}{chr(random.randint(48,57))}" # 4位
msg = input(f"请输入验证码{s}:")
if msg.lower() == s.lower():
print("验证成功!")
else:
print("验证失败")
s1 = s.count("e")
计数,统计
print(s.startswith("x",3))
判断以什么开头 -- 返回的是布尔值
print(s.endswith("r"))
判断以什么结尾 -- 返回的是布尔值
is系列
s = "123你好啊aaaa"
print(s.isalpha()) # 判断是不是由字母,中文组成 -- 返回的是布尔值
print(s.isdigit()) # 判断是否是数字 -- bug
print(s.isdecimal()) # 判断是否是十进制的数
print(s.isalnum()) # 判断是否是字母、数字、汉字
4.for 循环
for循环
固定结构:
for i in 可迭代对象:
循环体
s = '6314'
for i in s:
print(i)
print(i)
面试题
s = '123'
for i in s:
pass # 占位
print(i)
思维 : 借助了你的循环次数
s = "12"
for i in s: # 1 2
print(s) # 12 12
可迭代对象: 除去(int -- 整型;bool -- 布尔值)
s = '321'
for i in s:
print('倒计时'+i)
count = 0
while count < len(s):
print('倒计时%s'%s[count])
count += 1