第一部分:

切片
a = ‘1234abcd’
print(a[4]) # a
print(a[-3]) # b
print(a[2:5]) # ‘34a’
print(a[-3:-7]) # 空 排列正序,切片反序 无交集
print(a[-7:-3]) # ‘234a’
print(a[-3:-7:-1]) # ‘a432’
print(a[::3]) # ‘14c’
print(a[2:]) # ‘34abcd’
print(a[:3]) # ‘123’
for i in a:
print(i) # 逐个打印 1234abcd
for i in range(-len(a)-1,-1,-1):
print(i) # 倒序输出
for i in a[1:5:2]:
print(i) # 2,4

第二部分:

拼接
a = ‘我是前’
b = ‘我是后’
c = a + b
d = b + a
print(c,’\n’,d) # 拼接有顺序
c = (a+b)*3
print©

第三部分:

字符串格式化
a = ‘我是{},来自{},年龄{}’.format(‘王德华’,‘火星’,‘250’) # 位置匹配
print(a)
a = ‘我是{2},来自{0},年龄{1}’.format(‘250’,‘火星’,‘王德华’) # 索引匹配
print(a)
a = ‘我是{name},来自{adress},年龄{age}’.format(age=‘250’,name=‘火星’,adress=‘王德华’) #关键字匹配
print(a)

a = ‘我名叫{:*^40},\n,来自{:~>20},\n我会{:)<30}’.format(‘张三丰’,‘大海’,‘太极拳biubiubiu’)
print(a)
a = ‘可以没有{:b}’.format(10)
print(a)
a = ‘也可以有 八进制{?}’.format(10)
print(a)
a = ‘后面括号里面分号要注意是英文{:x}’.format(10)
print(a)
print(bin(10))
print(hex(10))
print(oct(10))
print(int(‘12421’,8))
name = ‘我是个啥’
age = 3
height = 0.2345
weight = 150
gailv = 0.9
a = ‘我叫%s今年%d体重%i身高%.3f我今年长高了%.1f%%’%(name,age,weight,height,gailv)
print(a)

第四部分

字符串运用函数
a = ‘1234abcd4321dcba’
print(a.index(‘3’)) # 2 # 找不到时程序报错
print(a.rindex(‘3’)) # 9 # 注意函数内数据类型为字符串
print(a.find(‘a’)) # 从左的一个的索引
print(a.rfind(‘a’)) # 从右第一个的索引
print(a.find(‘z’)) # 返回-1 找不到时返回-1
a = input(‘请输入一个那啥’)
b = input(‘请输入一个小的那啥’)
count = 0 # 实现计数
for i in range(len(a)-len(b)+1):
if a[i] == b[0]: # 减少检索次数
for j in range(len(b)):
if a[i+j] != b[j]:
break
else:
count += 1
print(‘位置’,i)
print(‘共有%d个’%(count))
a = ‘babcad123a4jkajg’
print(a.partition(‘a’)) # 给定单元分割一次
print(a.partition(‘d’))
print(a.split(‘a’)) # 给定单位分割全部
print(a.split(‘a’,maxsplit=2)) # 限制性内切
replace
print(a.replace(‘a’,‘padadaj1`23’))
a = ‘123456’
b = ‘赵钱孙李周吴’
zd = a.maketrans(a,b)
c = ‘1352521241266341’
d = c.translate(zd)
print(d)
填充格式
a = ‘abd’
print(a.ljust(8,‘d’)) # 长度 + 单个字符
print(a.rjust(9,’(’))
print(a.center(20,‘0’))
print(a.zfill(60))
删除填充
a = ‘##$@#asdl###’
print(a.strip(’#’)) # 只能删除头头上的字符,有夹杂的不管
print(a.lstrip(’#’))
print(a.rstrip(’#’))
大小写
a = ‘abd\tii jj kun’
print(a.upper())
print(a.lower())
print(a.expandtabs(3))
print(a.capitalize())
print(a.swapcase())
print(a.title())

第五部分

字符串判断
a = ‘abc’
print(a.isalpha()) # True 字母
print(a.isdigit()) # False 数字
print(a.isalnum()) # True 字母或数字
print(a.isupper()) # Flase 大写
print(a.islower()) # True 小写
print(a.istitle()) # False 标题 首字母大写
print(a.isspace()) # Flase 是否全空格
a = ‘123\t\tabc’
print(a.startswith(‘123’)) # True
print(a.endswith(‘abc’)) # True
print(a.split()) # 分割符号
dir(a) # 查看内建名称

第六部分

转义字符
a = ‘tom’s cat’
b = “tom’s cat”
print(a,b)
‘\t’ =tab 横向制表符
‘\n’ =enter 换行
‘\’,’’’,’"’ 分别取消本符号的语法作用
\ 单斜线表示续行 连接上下两行,上半行末不能添加注释
字符串前面(引号外面)加R或者r 整个字符串中的转义字符都不启用
a =‘我是谁’
b = a.encode() # 编码
print(b)
c = b.decode() # 解码
print©

推导式及简单的模块

一 、推导式
a = [1,2,3,4,5,6]
b = [ii for i in a ]
print(b)
b = list(map(lambda i:i**2,a))
print(b)
import random
b = []
for i in range(10):
b.append(random.randint(2,100))
print(b)
b = [17, 67, 44, 28, 76, 63, 12, 50, 58, 85]
c = [i for i in b if i % 2==0] #推导式的基础原理
i :元素
for语句 元素来源
if语句 for条件的前提
逻辑顺序:从前往后 表示正常逻辑的从上往下
print©
a = [[[1,2,3],[2,3,5]],[[1,2],[3]],[[‘a’,‘fs’],[‘3’,6]]]
b = [i for b in a for c in b for i in c ] # 整合多级序列 由外向内解包
b = []
print(b)
for i in range(len(a)):
for j in range(len(a[i])):
for k in range(len(a[i][j])):
b.append(a[i][j][k])
print(b)
a = [[1,2,3],[4,5,6],[7,8,9]]
#输出 1,4,7 、 1,5,9,/3,5,7
print([a[i][0]for i in range(len(a))])
print([a[i][i]for i in range(len(a))])
print([a[i][len(a)-i-1] for i in range(len(a))])
a ={‘a’:3,‘A’:4,‘b’:6,‘B’:1,‘c’:9}
b = {‘a’,‘A’,‘A’,‘B’,‘b’,‘C’,‘c’}
c = {k.lower():a.get(k.lower(),0)+a.get(k.upper(),0) for k in a if k in b}
print© # {‘a’:7,‘b’:7,‘c’:9}
a = {1,2,3,4,5,6,7}
b = {i
i for i in a }
print(b)
a = {1,2,3,4,2,2,2,2,2}
b = {i*i for i in a}
print(b)
for i in b :
print(i)
二 模块
导入
import 直接导入整个模块 可以一次导入多个 可以导入后重新命名
from ** import ** 从某一个路径(包/模块)导入某一个模块或者方法 可以指定某一方法(函数)导入
from XXX import * 使用一个星号可以导入整个指定位置的全部内容 x 下划线开头的单位无法导入
可以使用__all
_ 来限制导入的内容,__all__内的名称可以全部导入(不受下划线限制) 对于导入时无法导入的
可以先在sys.path 中添加路径(import sys ,然后添加至路径列表)
使用随机模块生成验证码
import random,time
while True:
b = ‘’
for i in range(4):
sz = random.randint(0,9) #数字
dx = chr(random.randint(65,90)) # 大写字母
xx = chr(random.randint(97,122)) # 小写字母
code = str(random.choice(sz,dx,xx))
b += code
print(b)
time.sleep(60)
a = [1,2,3,4,5]
random.shuffle(a)
print(a)

时间模块

import time
time_now = time.localtime()
print(time_now)
time_s = time.time()
time_yesterday = time.localtime(time.time() - 3600*24)
print(time_yesterday)
time_now_s = time.mktime(time_now)
print(time_now_s)
time_str = time.strftime(’%Y %m %d %H:%M:%S’,time_now)
print(time_str)
print(time.strptime(time_str,’%Y %m %d %H:%M:%S’))
print(time.asctime())
print(time.gmtime())

账号冻结倒计时

import time
while True:
t1 = ‘2019-7-24 17:04:00’
t2 = time.strptime(t1,’%Y-%m-%d %H:%M:%S’) # 固定起始
t3 = time.localtime() # 当期时间
t21 = time.mktime(t2) # 起始时间
t31 = time.mktime(t3) # 当前
td = 3600724
tg = t31 -t21
ts = td - tg
d = ts // 3600//24 # 剩余天数
h = ts %(3600*24)//3600
m = ts % 3600 //60
s = ts % 60
print(‘您的银行卡还剩%d天%d小时%d分%d秒解冻’%(d,h,m,s))
time.sleep(1)

学生管理系统

a={“001”: {“name”: “张三”, ‘age’: 18},
“002”: {“name”: “李四”, ‘age’: 28},
“003”: {“name”: “王五”, ‘age’: 19},
“004”: {“name”: “赵六”, ‘age’: 31},}
while True:
bh = int(input(‘请输入编号(1,增加信息。2,删除信息。3,更改信息。4,查询信息。0,退出系统)’))
if bh == 1: # 增加信息
xh = input(‘请输入学号’)
if xh in a:
xh = input( ‘学号已存在’ )
else:
name = input( ‘请输入姓名’ )
age = input( ‘请输入年龄’ )
a.update( {xh: {‘name’: name, ‘age’: age}} )
elif bh == 2: # 删除信息
xh = input( ‘请输入学号’ )
if xh in a:
del a[xh]
else:
print(‘学号不存在’)
elif bh == 3: #更改信息
xh = input( ‘请输入学号’ )
if xh in a:
name = input( ‘请输入姓名’ )
age = input( ‘请输入年龄’ )
a.update( {xh: {‘name’: name, ‘age’: age}} )
else:
print(‘学号不存在’)
elif bh == 4: # 查询信息
xh = input( ‘请输入学号’ )
if xh in a:
print(a[xh])
else:
print(‘学号不存在’)
elif bh == 0:
print(‘退出系统’)
break
print(a)

字符串的基本使用规则、推导式和常用的几种模块的应用(代码及简单解释)相关推荐

  1. python for i in 字符串_python使用[int(i) for i in range(i)]将数字或字符串转化为列表(推导式)...

    运行效果: >>> [int(i) for i in str(123)] [1, 2, 3] >>> [int(i) for i in range(10)] [0, ...

  2. part4-2 流程控制二(循环结构,while、for循环,列表推导式、生成器推导式,常用工具函数,控制循环结构,4个简单实例)...

    循环语句在循环条件满足时,可反复执行某一段代码,这段被重复执行的代码称为循环体.在循环体中,需要在合适的时候把循环条件设置为假,从而结束循环:否则循环一直执行下去形成死循环.循环语句通常包含如下4个部 ...

  3. python元祖推导式_python推导式深入讲解

    python推导式是非常简洁高效的数据整合手段,功能强大且运行效率极高.本文将带你深入了解并掌握推导式,并将告诉你什么时候该用推导式什么时候不该用推导式. 一.推导式语法 变量名 = [ 表达式 fo ...

  4. python 列表推导 为什么快_Python中简单的列表推导式,却能解决复杂的问题,你学会了吗?...

    Beautiful is better than ugly. ------Python之禅 01[引子] 我们知道,Python是一门简单.易学的编程语言,"Python之禅"里面 ...

  5. Python的列表推导式和嵌套列表推导式

    推导式 推导式的基本形式: [expr for val in Collection if condition] 简单翻译一下: [操作 for 值 in 容器 if 条件] strings = ['b ...

  6. 一木.溪桥学Python-10:函数闭包、装饰器、推导式

    一木.溪桥 在Logic Education跟Amy学Python 逻辑教育 :https://logicedu.ke.qq.com 12期:Python基础课 一木.溪桥学Python-10:函数闭 ...

  7. Python中的推导式

    推导式 Compression 推导式 ( Compression )是Python语言的一大特色 相比于其他语言而言, 推导式使得Python能够编辑的进行循环,创建出特定的字典,列表等可迭代对象 ...

  8. python中列表、字典和集合推导式

    1. 列表推导式         ⽤⼀个表达式创建⼀个有规律的列表或控制⼀个有规律列表,又叫列表生成式. 1.1 简单的列表推导式 需求:创建⼀个0-10的列表. 示例代码:[while循环实现] # ...

  9. python 列表推导式 - 列表字典取value

    d = [{'phone': '110'}, {'phone': '120'}] d2 = [x['phone'] for x in d] print(d2) 以下来自于参考 值得收藏!16段代码入门 ...

  10. python列表解析式如何使用_python列表推导式操作解析

    python列表推导式操作解析 这篇文章主要介绍了python列表推导式操作解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 基本格式 ​[表达式 ...

最新文章

  1. 科学探索奖首批50名获奖者都有谁?
  2. Saltstack使用(基础)
  3. LINQ系列:Linq to Object分区操作符
  4. Ubuntu 16.04下Caffe-SSD的应用(一)——编译Caffe-SSD的CPU版本与GPU版本
  5. float相乘后的类型_Psychopy | 第1期:数据类型及运算符
  6. linux页表,arm linux 页表(转)
  7. Matlab与simulink中的数据类型
  8. 输入5个整形数据_妙招技法:Excel表格数据录入的5个小技巧
  9. canoe变量和信号_CANoe的经验总结及如何进行 CAN Signal layout
  10. hget如何获取多个value_《深入微服务》之 如何给老婆解释什么是微服务的基础框架SpringBoot?...
  11. mysql存储php数组_mysql数据库存储PHP数组、对象的方法
  12. android: 多线程编程基础
  13. 应用优化-HTTP缓存
  14. 瑞友杯虚拟化征文---瑞友天翼应用虚拟化之实战演示
  15. Android studio 突然连接不上夜神模拟器
  16. 【python 数据分析】不同情况下的t检验、Wilcoxon符号秩检验、Wilcoxon秩和检验、卡方检验、Fisher检验
  17. WPF控件模板和数据模板的区别
  18. 计算机休眠和睡眠省电,笔记本电脑的睡眠方式和休眠方式那个省电
  19. spring cloud alibaba全家桶之nacos
  20. 跨平台剪贴板同步工具盘点

热门文章

  1. 电子身份证助力打击钓鱼攻击
  2. HDU5510 Bazinga(KMP)
  3. VR和AR的区别是什么?-粤嵌教育
  4. Flutter学习笔记: Dart语言值之面向对象class
  5. iOS-图片可以自适应屏幕大小吗,应该会失真吧?
  6. C#中Validating和Validated事件
  7. windows 7计算机用户名和密码忘了,教你电脑密码忘了怎么办
  8. c语言数独思路介绍,【数独运算器】,关于数独的解题思路,已经改进。
  9. 太飒了!这届乘风破浪的 IT 女神写得了代码、撕得掉年龄、跨得过行业!
  10. 希腊神话中的爱情悲剧