第三节 python 字符串详讲

*************************************************2018 -10-5  day11-1

第三节 python 字符串详讲

字符串的魔法

test='username\temail\tpassword\nlaiying\tjiancunzhang@126.com\t123\t'

v=test.expandtabs(6)

print(v,len(v))   六个六个分

def isalpha 与 def isapha一对 判别含不含字母

test=

v1 = test.isdecimal()

v2 = test.isdigit()

v3 = text.isnumeric()

print(v1,v2)是否含数字,特种数字如⑥,二

test.isprintable() 如\t \n 是否存在不可见的东西

输出 True False

def isspace(self)  判断是否全部空格

def istitle() 判断全部首字母是否全部大写

def title()转换

def join(self,iterable)

test='你是风儿 我是沙'
t=' '
v=t.join(test)
print(v)
下滑线也是可以的
test='alex'
v=test.zfill(20)
print(v)
def islower()判断是否小写,然后输出bool
def lower 全部小写,
def isuper()判断是否小写,然后输出bool
def uper 全部小写,
处理空格的 表格 换行等
def lstrip()
def rstrip()
def strip()
优先最多匹配
对应替换关系
v='asidufkasd:fiu'
m=str.makestrans('aeiou','12345')
new_v=v.translate(m)
print(new_v)
分割
def partition
def rpartition
def split
def rsplit
分割器直接输入一堆公式,进行分割 如正则表达式也可以进行分割
def splitlines(False) 换行进行分割,分割,只能根据,true,false:是否保留换行
def startswith()
*************************************************2018 -10-5  day11-04
算法 子序列等于子集

六个基本的魔法
join split find strip upper lower
灰魔法
test='alex'
v = test[3]
print(v)
#索引,下标,获取字符串中的某一个字符
v=test[0:1] #0=< <1
v=test[0:-1] #0 到最后
len()
"_".join("kljljkjl")

循环结构(for-in)

  • 说明:也是循环结构的一种,经常用于遍历字符串、列表,元组,字典等

  • 格式:

    for x in y:
    循环体

    执行流程:x依次表示y中的一个元素,遍历完所有元素循环结束

  • 示例1:遍历字符串


    s = 'I love you more than i can say'
    for i in s:
       print(i)
  • 示例2:遍历列表

    l = ['鹅鹅鹅', '曲项向天歌', '锄禾日当午', '春种一粒粟']

    for i in l:
       print(i)

    # 可以获取下表,enumerate每次循环可以得到下表及元素
    for i, v in enumerate(l):
       print(i, v)
  • 示例3:遍历字典


    d = {'a':'apple', 'b':'banana', 'c':'car', 'd': 'desk'}

    for key in d:
       # 遍历字典时遍历的是键
       print(key, d.get(key))

    # for key, value in d.items():
    # 上下两种方式等价 d.items() <=> dict.items(d)
    for key, value in dict.items(d):
       print(key, value)
  • 列表生成式

    • 可迭代对象:列表、元组、字典等都是可迭代对象,就是可以遍历的对象

    • range,用法如下:


    print(range(10))
    # 可以生成从0开始到10的连续整数的迭代对象
    print(range(0, 10))

    # 可以遍历
    for i in range(10):
       print(i)

    # 强制转换为列表
    print(list(range(1, 11)))
    • 列表生成式:快速生成具有特定规律的列表


    # 列表生成式
    print([i for i in range(1, 11)])
    print([i*2 for i in range(1, 11)])
    print([i*i for i in range(1, 11)])
    print([str(i) for i in range(1, 11)])
    print([i for i in range(1, 11) if i % 2 == 0])
  • 多重循环:就是循环中嵌套循环

    • 示例1:从终端输入一个整数,打印如下图形:


    n = int(input('请输入一个整数:'))

    '''
    1
    1 2
    1 2 3
    1 2 3 4
    ...
    1 2 3 4 ... n
    '''

    '''
    j = 1
    while j <= n:
      i = 1
      while i <= j:
          print(i, end=' ')
          i += 1
      print()
      j += 1
    '''

    for i in range(1, n+1):
       for j in range(1, i+1):
           print(j, end=' ')
       print()
    • 示例2:打印九九乘法表


    for i in range(1, 10):
       for j in range(1, i+1):
           print('{}x{}={}'.format(j, i, j*i), end=' ')
       print()
    • 示例3:列表排序(选择法)


    l = [1, 9, 4, 2, 0, 8, 3, 7]

    # 获取长度
    n = len(l)

    # 外层循环用来控制循环的圈数,每一圈可以确定一个元素的位置
    # 确定n个元素起始只需要n-1圈即可
    for i in range(n-1):
       # 内层循环用来比较大小交换元素,一圈确定一个元素
       for j in range(i+1, n):
           # 如果不合适
           if l[i] > l[j]:
               # 交换两个变量
               l[i], l[j] = l[j], l[i]

    print(l)
  • ************************************************2018 -10-5  day11-6
  • 字符串一单定了,就不要改内容
  • name='abc' num='11'
  • info = name + num
  • print(info)
  • 字符串一旦创建,不可修改
  • 一旦修改或者拼接,都会造成重新生成字符串
  • ************************************************2018 -10-5  day11-6
def replace('old','new',x)老的换成新的,换成前几个
帮助我们创建连续的数字range
v=range(100)
for item in v:
print(item)
test=input('>>>')
for item in test:
print(item)
test =input('>>>')
print(test)
l=len(test)
print(l)
r=rang(0,l)
for item in r:
print(item,test[item])
或者
test=input('>>>')
for item in range(0,len(test)):
print(item,test[item])



posted on 2018-10-05 12:33  张健存  阅读(187)  评论(0)    收藏  举报