• Python基础05_str_补充


    继续学习中,

    补充一些str 的索引、切片、长度、循环输出等。

    #!/usr/bin/env python
    # coding:utf-8
    
    # 通过下标索引获取字符串中的某个字符
    
    # 1. 索引
    test = "alexerdor"
    a = test[0]
    print(a)
    
    # 2. 切片
    b = test[0:2] # 小于2, 不包括2
    print(b)
    c = test[0:-1] # 负1的意思是到最后减1
    print(c)
    
    # 3. 长度
    test2 = "中国人"
    d = len(test2) # python3中返回3, 2.7中则返回9 (因为utf8的字节长度是3 )
    print(d)
    
    # 4. 循环输出
    txt = "大数据分析挖掘与开发技术"
    #
    # n = 0
    # while n < len(txt):
    #     v = txt[n]
    #     print(v)
    #     n += 1
    
    # For循环
    
    for t in txt:  # 简单的方法,轻松地得到和上面循环输出方法一样的结果。
        print(t)
    
    ######################## 记住以上4 种,以及前面必须的 6 种普通方法。
    
    # for dict
    
    bdict = {}
    bdict['aaa'] = 1
    bdict['bbb'] = 2
    bdict['ccc'] = 3
    bdict['ddd'] = 4
    bdict['eee'] = 5
    
    # 字典只能输出下标, 并且不是按顺序输出: 针对key的hash取模
    for v in bdict:
        print (v)
    
    # 改动后
    for k, v in bdict.items():
        # print(k + " ===> " + str(v))
        print("{}===>{}".format(k,v)) #使用format方法输出。

    以及str 的range / replace

    #!/usr/bin/env python
    # coding:utf-8
    
    # 1. replace
    name ="tom & jerry jessies"
    s = name.replace("j","T",1) # 第3个参数是指定替换几个。不指定则全部替换
    print(s)
    
    
    # 2. range 帮助创建连续数字,通过步长来指定不连续
    test = range(0,100,9) # 第3个参数是步长
    for e in test:
        print(e)
    
    
    ## 练习: 将文本对应的索引打印出来。
    str_name = "分布式文件系统HDFS"
    le = len(str_name)
    rg = range(0,le)
    for a in rg:
        print(a, str_name[a])
    
    # 老师的讲解 简写
    txt = input(">>>")
    for item in range(0,len(txt)):
        print(item, txt[item])
        

    原生字符串 ,即在引号前面加 r 以及数字的e记法。

    #!/usr/bin/env python
    # coding:utf-8
    
    # strings = 'C:
    adiofm'
    # print(strings)
    
    # row string 字符串前面加了r 后,结尾不能有反斜杠
    strings_r = r'C:
    adiofm'
    print(strings_r)
    
    str2 = r'''C:windows
    imda'''
    print(str2)
    
    
    # 数字的 e 记法
    a = 15e3
    print(type(a),a)
    
    b = 5.99
    b2 = int(b)
    print(b2)
    
    # 判断数据类型是否正确.前提是你知道类型的情况下使用,如果不知道类型的现个变量的判断,则使用type(a) == type(b)
    print(isinstance(b, float))

    下面是完成老师布置的作业, 老师还未讲解。

    #!/usr/bin/env python
    # coding:utf-8
    
    # 1. 执行python脚本的2种方式。
    
    # 2. 简述位、字节的关系。
    
    # 3. 简述ascii unicode  utf-8  gbk的关系
    
    # 4. 请写出“李白”分别用utf-8和gbk编码所占的位数。
    
    # 5. python的单行注释和多行注释分别用什么。
    
    # 6. 声明变量注意事项有哪些?
    
    # 7. 如有以下变量 n = 5 ,请使用int提供的方法,得到该变量最少可以用多少个二进制位表示?
    
    n = 5
    i = n.bit_length()
    print("最少{}位".format(i))
    
    # 8. 布尔值分别有什么?
    
    # 9. 阅读代码,写出执行结果
    a = "alex"
    b =a.capitalize()
    print(a)
    print(b)
    # 请出执行结果: alex    Alex
    
    # 10. 写代码,有如下变量,按照要求实现每个功能
    name = " aleX"
    ## a. 移除name变量两边的空格,并输出
    print(name.strip())
    
    ## b. 判断name变量对应的值是否以"al"开头,并输出结果
    print(name.startswith("al"))
    
    ## c. 判断是否以"X"结尾并输出
    print(name.endswith("X"))
    
    ## d. 将变量中"l"替换成"p"
    print(name.replace("l","p"))
    
    ## e. 将变量以"l"分割并输出
    print(name.split("l"))
    
    ## f. 请问上一题 e 分割之后得到值是什么类型?
    ## 应该是 list 类型
    
    ## g. 将变量的值变大写, 变小写
    print(name.upper())
    print(name.lower())
    
    ## i. 输出变量值的第2个字符
    print(name[1])
    
    ## j. 输出变量值的前3个字符
    print(name[0:3])
    
    ## k. 输出变量值的后2个字符
    print(name[len(name)-2:len(name)])
    
    ## l. 输出变量值 e 所在位置
    print(name.find("e"))
    
    ## m. 获取子序列,不包含最后一个字符
    print(name[0:-1])
    
    # 21. 字符串是否可以迭代对象,如可以请使用 for 循环每一个元素
    test = "大数据分析主要的工具都是Apache公司开发的"
    tmp = str.maketrans("","d") #参数的长度应该相等
    test2 = test.translate(tmp)
    for f in test2: print(f)
    # 22. 用代码将下面2个变量的元素拼接成字符串
    abc = "alexericrain"
    lis = ['alex','eric','rain']

    # print(abc+lis[0]+lis[1]+lis[2])
    for a in lis:
    abc += a
    print(abc)

    # s1 = "_".join(abc)
    # print(s1)
    # print("_".join(lis))
    # 23. python2中和python3中的range的区别 
    # 24. 实现一个整数加法计算器,如: 5+9 或 5+ 9 或 5 + 9
    num = input("请输入加法表达式:")
    s2
    = num.split("+")
    res
    = 0

    for i in s2:
      if i.strip().isdigit():
        res
    += int(i)
      else:
        
    print("请输入正确的数字")
        break

    print
    ("您的和是:",res)

    # 25. 用户输入的内容中有几个数字几个字母?
    cont = input("请输入内容:")
    n1
    = 0
    n2
    = 0

    for t in cont:
      if t.isalpha():
        n1
    += 1
      if t.isdigit():
        n2
    += 1

    print("字母{}个,数字{}个".format(n1,n2))

    # 26. 简述int 和 9 等数字 以及 str 和 "xxoo"等字符串的关系?

    # 27. 制作趣味组合,等待用户输入名字、地点、爱好, 根据这些任意实现

    # 28. 制作随机验证码,不区分大小写. # 流程:用户执行程序 >> 给用户显示需要输入验证码 >> 用户输入的值 相同时显示正确,否则继续生成随机验证码等待输入。
    def check_code():
      import random
      checkcode
    = ''
      for i in range(4):
        current
    = random.randrange(0,4)
        if current != i:
          temp
    = chr(random.randint(65,90))
        else:
          temp
    = random.randint(0,9)
        checkcode
    += str(temp)
      return checkcode

    while
    True:
      code
    = check_code()
      
    print(code)
      tmp
    = input("请输入验证码:")
      if tmp.lower() == code.lower():
        
    print("right.") break

    切片的一些补充:

    a = 'abcdjklmn'
    print(a[:4])      # 前4个
    print(a[-2])      # 倒数第2个
    print(a[-2:])     # 取最后2个
    
    print(a[4:])      # 下标4到最后
    print(a[:])       # 全部
    print(a[:5:2])    # 从头到5,步长2
    
    print(a[4:0:-1])  # 反向取,从下标4到0
    print(a[4::-1])   # 反向取,从下标4到开头
    print(a[-1::-1])    # 反转
    print(a[::-1])      # 反转
    #2、写函数,检查获取传入列表或元组对象的所有奇数位索引对应的元素,并将其作为新列表返回给调用者。
    def chk(a):
        return a[1::2]
    
    print(chk((22,33,11,55,44,66,)))
    
  • 相关阅读:
    [翻译]9个最好的富文本编辑器概览
    使用 AForm 快速开发高度复用的表单
    sql server和oracle行转列的一种典型方法
    hibernate4 分页报只进结果集不支持请求的操作的解决办法
    android主流UI布局
    Android 4.0源码放出
    The SQL Server Service Broker for the current database is not enabled
    iphone网络编程 http请求 get / post(发送二进制文件) 总结
    VS2008编译命令
    如何使用SOCKET 发送HTTP1.1 GET POST请求包
  • 原文地址:https://www.cnblogs.com/frx9527/p/python_05.html
Copyright © 2020-2023  润新知