int,bool,str方法,for循环

点点圈 提交于 2020-03-17 09:24:30

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
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!