#数据类型–字符串
#示例零:
print(‘我是最乖的字符串,因为我是单引号引起来的’)
print(“我才是最乖的,因为我是双引号引起来的”)
print(’’'有什么好争论的,你看我是三引号引起来的
我这么乖,我有骄傲了么?
‘’’)
#示例一:转义序列符号
print(“换行 \n”)
print(“回车 \r”)
print(“在里面来一个双引号 " 双引号里面玩双引号,牛X死了”)
print(‘在里面来一个单引号 ’ 单引号里面玩单引号,牛X活了’)
print(“在里面来一个斜杠 \ 转义符转转义符,牛X不想说话了”)
#示例二:字符串类型-交互&输入
#用input 给用户提问并等待答案,拿到答案就教给变量 name
name=input(“来,给怪蜀黍说下你叫什么名字啊?\n”)
print(“久仰久仰、失敬失敬!原来你就是”+name)
#示例三:字符串计数
str=input(“随便输入一些字符吧\n”)
print(“贫道掐指一数,你输入了”,len(str),“个字符”)
#示例四:取出字符串中指定位置的字符
str1=“出字符串中指定位0123456789ABCDEFG”
print(str1[0],str1[2],str1[4],str1[6],str1[8],str1[10])
print(“最后一个字符是”,str1[-1])
#示例五:获取某字符在字符串中的位置
str2=“0123456789ABCDEFG”
print(“CDE 的位置是:”,str2.find(“CDE”,0,len(str2))) #变量名.find(要找的对象,开始的位置,结束的位置)
print(“2 的位置是:”,str2.index(“2”,0,len(str2)))
#示例六:判断字符串中是否有某个字符
a = “甜丝儿棒棒哒”
if (“老” in a):
print(“老 在变量 a 中”)
else:
print(“老 不在变量 a 中”)
#示例七:截取字符串
str3=“0123456789ABCDEFG”
print(“前面6个字符是:”,str3[:6]) #变量名字[起始位置 : 结束位置]
print(“第6个字符之后是:”,str3[6:])
print(“第3个到第8个字符是”,str3[3:8])
#示例八:读取星期几
weekstr = “星期一星期二星期三星期四星期五星期六星期日”
weekid= int(input(“请输入星期数字(1-7):\n”))
wz=(weekid-1)*3
print(weekstr[wz:wz+3])
#示例九:拼接两个字符串中的某一小段
str4=“0123456789”
str5=“ABCDEFG”
print(“完整拼接,用 + ,中间没有空格:”,str4 + str5)
print(“完整拼接,用 , ,中间一个空格:”,str4,str5)
print(“抽取两个字符串中的一段来拼接:”,str4[1:5],str5[2:])
#示例十:格式化字符串(要拼接的字符串类型太多了就很麻烦,可以在拼接的时候做类型转化的格式化)
#用一个百分号+格式化字符,来表示要把对应的参数转换为什么类型,比如 %s 就是把参数转换为 字符串
print(“第一个参数%d 第二个参数%s” %(1111,“222”))
print(“我叫 %s 今年 %d 岁!我的特点就是 %s。缺点嘛,只有 %.8f 那么点缺点” %(‘甜老丝儿’, 18,‘帅,很帅’,0.0001))
#示例十一:python3.6之后新增的一个 格式化字符串的方法,巴适惨了 f-string
#f-string 格式话字符串以 f 开头,后面跟着字符串,字符串中的表达式用大括号 {} 包起来,它会将变量或表达式计算后的值替换进去
name = ‘甜老丝儿’
age=18
print(f’你好:{name}’) # 替换变量
#用了这种方式明显更简单了,不用再去判断使用 %s,还是 %d。
print(f’你好:{name},你今年{age+1},气质{10000.0000}’) # 替换变量
print(f’{1+2}’) # 使用表达式
print(f’{1+2}+{age-1}’) # 使用表达式
#示例十二:使用format()方法
x=‘2020-19-28’
y=‘甜老丝’
z=18
print(“今年的{}日,吊炸天的{}就{}岁了”.format(x,y,z))
#format()方法还能对单个的参数做格式控制
print(“左对齐:{0:10}”.format(y)) #左对齐,右边不够10个字符用空格凑够
print(“右对齐:{0:>10}”.format(y)) #右对齐,左边不够10个字符用空格凑够
print(“居中对齐:{0:^10}”.format(y)) #居中对齐,两边不够10个字符用空格凑够
print(“左对齐:{0:-<10}”.format(y)) #左对齐,右边不够10个字符用-凑够
print(“右对齐:{0:->10}”.format(y)) #右对齐,左边不够10个字符用-凑够
print("居中对齐:{0:^10}".format(y)) #居中对齐,两边不够10个字符用凑够
xx=123.123456
print("{0:.4f}".format(xx)) #格式化出小数,小数点前面3位,后面4位精度
#示例十三:在 Python 3.8 的版本中可以使用 = 符号来拼接运算表达式与结果:
x = 1
y=15
print(f’Python 3.6的方法:{x+1}’) # Python 3.6
print(f’Python 3.8的方法:{x+1=}’) # Python 3.8
print(f’{x+1=}\n{x+y=}’)
#示例十四 字符与ASCII,要学习这个例题,必须先了解字符的ASCII数,来看看
c=input(“请输入一个英文字母:”)
print(ord©)
n=int(input(“请输入一个0-255之间的整数:”))
print(chr(n))
#示例十四 爱的密语
c=“i love u” #明文
miyu=’’ #存储密文,最后显示
for i in range(len©): #循环整个明文
miyu="{} {}".format(miyu,ord(c[i])) #循环到当前的这个字母的ascii码都加一个空格增加到原来的密文后面
print(miyu) #显示出来
#示例十五 凯撒密码
#假设用户可能使用的信息仅包括小写字母a-z,则该微实例对应的加密代码如下:
mingwen = input(“请输入明文:\n”) #用户输入明文
for p in mingwen: #循环这个明文
if ord(“a”) <= ord§ <= ord(“z”): #判断当前循环到的这个字母是不是 26 个小写字母中的一个
print(chr(ord§+3),end=’’) #得到当前这个字母对应的后三位的字母,打印出来
#假设当前字符是 b,为98,这个算式就是 chr(98+3)
else: #否则,当前字符不是小写字母,那么
print(p,end=’’) #就不处理吧
‘’’
原文字符P,其密文字符C满足如下条件:
C = P + 3
解密方法反之,满足:
P = C – 3
‘’’
#解密的代码为
miwen = input("\n 请输入密文:\n")
for t in miwen:
if ord(“a”) <= ord(t) <= ord(“z”):
print(chr(ord(t)-3),end=’’)
else:
print(t,end=’’)
#以下部分由于知识还没讲完,硬要讲的话很多人会感觉太难,就不讲了,代码分享出来,有兴趣的人可以自己研究
#研究我的代码方式很简单,就是像我这样给代码写注释就可以了,但如果你只是想读懂的话,很难,如果你一句句写注释,一句句根据后面理解去修正前面的代码,就会觉得这个其实so easy,加油,我看好你的
#示例十六 多行的进度条
import time #调用时间库,读取系统时间
scale=20 #定义一个显示次数的数值
print("--------正在入侵---------") #来一碗标题
for i in range(scale+1): #循环定义的那么多次,为什么要加1呢,因为要显示21次,也就是100%也要显示
a,b=’++’ * i,’…’* (scale-i) #定义两个变量,分别为a和b,值都为
c=(i/scale)*100
print("%{:^3.0f}[{}->{}]".format(c,a,b))
time.sleep(0.1)
print(’---------入侵完成----------’)
#示例十七 单行动态刷新
import time
for i in range(101):
print("\r{:2}%".format(i),end="")
time.sleep(0.1)
#示例十八 带刷新的文本进度条
import time
scale =50
print("{0:*^30}".format(“开始入侵”))
t=time.time()
for i in range(scale+1):
a=’*’ * i
b=’.’*(scale-i)
c=(i/scale)*100
t-=time.time()
print("\r{:^3.0f}%[{}->{}]{:.2f}s".format(c,a,b,-t),end=’’)
time.sleep(0.1)
print("\n{0:*^30}".format(“入侵完成”))