Python爬虫学习基础知识中

1.格式化输出

name = input("请输入名字")
age = input("请输入年龄")
job = input("请输入工作")
Hobbite = input("请输入爱好")

print("-------------- info of + " + name + " --------------------")
print("Name : " + name)
print("Age : " + age)
print("job : " + job)
print("hobby : " + Hobbite)
print("---------------end-------------------------")


# #字符串的格式化
# #老的格式化方案
s = """
-------------- info of + %s --------------------
Name : %s
Age : %s
job : %s
hobby : %s
---------------end-------------------------
""" % (name, name, age, job, Hobbite)

print(s)

#   %s 表示在字符串中占位,稍后会填充字符串(任何内容)
#  %d 表示在字符串占位整数
# %f 表示在字符串中占位小数(float)
# print("我叫%s, 我来自%s, 我今年%d" % ("周杰伦", "台湾", 28))

# print("我叫%s, 我来自%s, 我的收入是%.2f" % ("周杰伦", "台湾", 28.88))


#新格式化方案
name = "sylar"
addr = "水坑"
hobby = "打滚"

print("我叫%s, 我喜欢在%s, 做%s" % (name, addr , hobby))
print(f"我叫{name}, 我喜欢在{addr}, 做{hobby}")#各位最推荐的方案,格式化最方便.

2.运算符基础知识

#次幂
a = 10
b = 20

print(a + b)
print(a - b)
print(a * b)
print(a / b)
#
print(a // b)#计算商
print(a % b)#计算余数
#
print(3 ** 4)#次幂

#开根号,需要借助函数

#比较运算
print(a > b)
print(a < b)
print(a == b)
print(a != b)
print(a >= b)
print(a <= b)


a = 10
b = 20

a = b #计算,把b的值赋值给a
a += b#累加计算  a = a + b
print(a)
print(b)

i = 1
while i <= 100:
    print(i)
    i += 1


#逻辑运算 布尔值数据判断
#and
#or
#not

print(True and False)
print(True or False)
print(not True)

# #出现and, or, not, ()的运算顺序
# #1(),2 not,3 and, 4 or
print(True or (False and True) or not False and True)
print(1 > 2 or 3 < 4 and 5 > 6)
# #先算比较运算


#非常规情况
# print(1 or 2 and 3)
#出现数字进行逻辑计算怎么办
#非零当成True
#零当成False
#记住or就可以 and和or正好相反
print(1 or 0)
#根据Ture or False 能够得出结论,最后结果跟着前面那个数得到
#所以,结果跟着前面的那个数字走,结果就是1

print(0 or 3)
print(1 or 3)

print(1 and 0)#跟着后面的结果走


# #登录
username = input("请输入用户名:")
password = input("请输入密码:")
if username == "admin" and password == "123456":
    print("登录成功")
else:
    print("登录失败")
#

#成员运算
#in, not in
#让用户输入评论信息,需要过滤敏感词
#判断敏感词
content = input("请输入评论:")
if "某某某" in content:
    print("有敏感词")

else:
    print("没有敏感词")

#升级需求
content = input("请输入评论:")
if ("某某某" in content) or ("某某某" in content):#注意在这里如果是写成"某某某"or"某某某" in content 这种情况是错误的原因如程序所示,or的判断是有括号包含的
    print("有敏感词")
else:
    print("没有敏感词")

3.编码知识

ASCII 1KB
128位
2**7
前面一直空置一位0

计算机的存储以8字节为单位
二进制的东西对2, 4, 8, 16, 32 非常的敏感
2**8
所以实际上是2**8的位置


计算机的二进制

a -> 01000001
b -> 01000010

为了适应中国文字
2**16  = 65536
ANSI 2KB
GBK:国标码的扩展码:中文,日文,俄文,韩文
国标码占有两个字节

Unicode 4KB
16
32
万国码
比较浪费空间和流量

可变长度的Unicode
utf-8
英文1type = 8bit
欧洲其他国家 2type = 16bit
中文3type = 24bit


所有编码必须兼容ascii

4.bttes类型

Python中使用的是unicode
进行存储
GBK ——>内存——>UTF—8

编码
之后的结果就是bytes
s = "中国" #内存中使用的是unicode

#编码
bs = s.encode("utf-8")
print(bs) #b'\xe4\xb8\xad\xe5\x9b\xbd'
 #bytes
bs = b'\xe4\xb8\xad\xe5\x9b\xbd' # 每个\都是一个字节
print(type(bs))
#
#
s = "中国"
print(s.encode("gbk"))#b'\xd6\xd0\xb9\xfa'


#把字节转化成字符串
#decode()解码
bs = b'\xd6\xd0\xb9\xfa'
s = bs.decode("gbk")
print(s)

#不同编码之间不能进行转换

bs = b'\xd6\xd0\xb9\xfa'
#转换成utf-8的字节
s = bs.decode("gbk")
print(s.encode("utf-8"))

#encode编码
#decode解码

#bytes :Python程序中最小的数据单位
# byte -> 8个01
#你好,我叫周杰伦
#图片, mp3, 视频 —>bytes
#3kb
#apple

5.基本数据类型bool

# a = 0
# b = bool(a)
# print(b)
#
#
# #数字,整数0当成Faslse,非零当成True来用
# while 1:#使用简单
#     print("爱你")

# a = ""
# a = [22, 222]

#所有的空的东西都是False,有东西就是True

#把字符串转换成数字
# a = "123"
# print(type(int(a)))


#把数字,变成字符串
# a = 1
# b = str(a)
# print(type(b))


#对于: int str, bool而言,想要互相转化的时候
#想要转换成什么就用,谁把数据括起来
#int(), str(), bool()
# a = True
# print(int(a))

6.索引

几个文字就是几个字符
s = "我喜欢你"
# s1 = s[4]#IndexError: string index out of range
# print(s1)

print(s[-1])

7.切片

s = "我最喜欢Python"

print(s[1]+s[2]+s[3])

print(s[1:3]) #顾头不顾尾 [start:end] end的数据取不到

print(s[3:])#切到结尾
print(s[:3])#从头开始切

print(s[:])#从头切到尾


print(s[3:1])#默认情况,切片从左往右边切

#如果需要从右边向左边切片,必须要给出第三个参数
s = "123hjkasdbadkj"
print(s[5:1:-1])
print(s[1:5:2])



'''
切片的语法:
    s[start:end:step]
    start:起始位置
    end:结束位置
    step:步长,每几个出来1个

'''

s = "abcdefghijklmnopqrst"

print(s[::-2])
print(s[1:8:3])
print(s[-1:-7:-2])
print(s[10:3:-4])

#练习2
#回文:上海自来水来自海上
#让用户随便输入一句话,判断这句话是否是回文

content = input(">>>!")
#把这句话倒过来,和原来这句话对比是否相等就可以了
s = content[::-1]#从右往左切
if s == content:
    print("是回文")
else:
    print("不是回文")

8.str大小写

大小写转换

字符串本身不可变类型,所以任何操作不会对字符串是不会有任何改变影响

返回的是一个新的结果

upper()函数
s = "i am sylar, I LOVE YOU"

a = s.capitalize()#首字母变成大写
print(a)

b = s.lower()#全部变成小写
print(b)

c = s.upper()#全部变成大写
print(c)

while True:
    content = input("请输入您想给打野说的话(输出Q退出):")
    if content.upper() == "Q":#忽略大小写
        break
    print("你对大野说:", content)


s = "i am sylar, I LOVE YOU"
print(s.swapcase())#全部小写

s = "abc_def_hij"
print(s.title())#标题,首字母变成大写,一连串的首字母变成大写

9.str切来切去

split()切割
通常用于数据的处理
s = "sylar"

s1 = s.center(10)#拉长填充
print(s1)

s2 = s.center(10,"*")
print(s2)


# #strip()默认是去掉字符串左右两端的空白(空格,\t, \n)
print("我爱\t你")  #制表符其实就是Tab按键
print("我也爱\n你呀")

s = "\t   \n     我今天心情特别好    \t \n"
# print(s)
print(s.strip())#脱


username = input("请输入用户名:")
password = input("请输入密码:")
if username.strip() == "admin" and password.strip() == "123":
    print("登录成功!")
else:
    print("登录失败")

s = "sb_sylar_sb"

print(s.strip("sb"))


#replace() 字符串替换
s = "我特别喜欢这个人"
s1=s.replace("这个人", "***")
print(s1)


#去掉一句话中所有的空格
s = "   我    哎    你    哈哈   "
s1 = s.replace(" ","")
print(s1)


# #split()字符串切割
s = "张无忌_赵敏_周芷若_小昭_珠儿"
lst = s.split("_")#通过_切割,会得到很多个字符串
print(lst)

#join()     把一个列表组合成一个字符串
lst = ['张无忌', '赵敏', '周芷若', '小昭', '珠儿']
s = "_爱_".join(lst)
print(s)

10.str_format

name = "sylar"
age = 18
s = "我叫%s, 我今年%d岁了" % (name, age)
print(s)

s1 = f"我叫{name}, 我今年{age}岁了"
print(s1)

s3 = "我叫{}, 我今年{}岁了".format(name,age)

s3 = "我叫{0}, 我今年{1}岁了".format(name,age)

11.str关于查找

# 让用户输入一个名字,判断这个名字是否以张开头
# startswith()
name = input("请输入你的名字:")
if name.startswith("张"):
    print("是的")
else:
    print("不是的")


# #结尾endwith()判断字符串是不是以什么结尾
s = "今天天气不错"
print(s.endswith("天气"))
print(s.endswith("不错"))



s = "Python_Java_php_ajax"
print(s.count("a"))#计算出现了多少个XX


s = "我最喜欢Python了"
print(s.find("哈"))#找不到返回-1
print(s.find("Python"))#找到首字母


s = "我最喜欢python了"
print(s.index("python"))
print(s.index("x"))#不存在的会出错

12.str条件判断

money = input("请输入你兜里的钱:").strip()
if money.isdigit():#判断字符串是否由数字组成的
    money = int(money)#转化

    if money > 3000:
        print("吃大腰子")
    else:
        print("吃小腰子")
else:
    print("您输入的内容有问题")




s = "一二三"
print(s.isnumeric())#isnumeric函数可以分辨中文下的数字,以及繁体数字


# #查看str源代码,通过源代码可以知道更多的字符串操作
print(dir(str))

str.join()

13.字符串的长度函数

s = "abc"

a = len(s)# 上来直接就能用的函数就是内置函数。
print(a)

14.str迭代for循环

s = "我叫周杰伦呵呵"
i = 0
while i<len(s):
    s1 = s[i]
    print(s1)
    i += 1
s1 = s[0]
print(s1)

s2 = s[1]
print(s2)

s = "我叫周杰伦呵呵"
#for 变量 in 可迭代对象:

for i in s:#迭代循环
    print(i)

15.str总结

索引从0开始
切片:起始位置,结束位置,步长
[::]

upper()把字符串全部变成大写,忽略大小写使用

strip()默认去掉左右两端的空白,包括空格\n\t

split()字符串切割得到字符串列表

find()查找XXX

len()字符串长度

for 变量 in 可迭代对象:
    循环体
  • 23
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值