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 可迭代对象: 循环体