python学习

一、数据类型

1. 字符串 str (可获取,不可修改,有序)

1.1 转义字符:\ +某个字符 (将有意义的字符变得无意义,将无意义的这字符变得有意义)

  • \n,\r\n 换行

  • \t缩进 水平制表符

  • \r 将 \r后面的字符直接拉到当前行首(会覆盖原先的行首)

  • r+字符串,原型化输出字符串,使其不转义

    strvar = "故国不堪回首\r月明中"
    print(strvar) # '明月中'
    
  • 将有意义的双引号变得无意义,如果外面是双引号,里面是单引号,与注释嵌套的注意点一样.

    strvar = "故国不堪'回首'\"月\"明中"
    print(strvar) # 故国不堪'回首'"月"明中
    

1.2 格式化字符串

1.21 % + 某个字符

""" 语法: "字符串" % (赋值1,赋值2,......) """
  • %d 整型占位符

    # %2d 占2位 原字符默认居右   居左:-2d
    strvar = "陈雄风买了%2d个金油" % (3)
    print(strvar) # 陈雄风买了 2个金油
    # %-3d 占3位 原字符默认具左
    strvar = "陈雄风买了%-3d个金油" % (4)
    print(strvar) # 陈雄风买了3  个金油
    
  • %f 浮点型占位符

    # %f 浮点型占位符 默认小数点保留6位
    strvar = "梁平波今天开工资了,一共发了%f元" % (9.9)
    print(strvar)
    # %.2f 小数点保留2位
    strvar = "梁平波今天开工资了,一共发了%.2f元" % (9.9)
    print(strvar)
    # %.1f 小数点保持1位,存在四舍五入的情况
    strvar = "梁平波今天开工资了,一共发了%.1f元" % (9.891)
    print(strvar)
    
  • %s 字符串占位符

1.22 format

  • 顺序传参

    strvar = "{}向{}开了一枪,饮弹而亡"
    res = strvar.format("田志平","陈雄风")
    print(res)
    
  • 索引传参

    strvar = "{1}给{0}一个大大的拥抱"
    res = strvar.format("郝佳伟","麦杰康")
    print(res)   # 麦杰康给郝佳伟一个大大的拥抱
    
  • 关键字传参

    strvar = "{who2}向{who1},扫射,嘴里喊着 , 丫子给给"
    res = strvar.format(who1 = "邹港城",who2 = "王青")
    print(res)
    # 关键字传参,并且指定类型位字符串
    strvar = "{who2:s}向{who1:s},扫射,嘴里喊着 , 丫子给给"
    res = strvar.format(who1 = "邹港城",who2 = "王青")
    
  • 容器类型传参 [] () {}

    strvar = "{0[1]}向{1[1]}抛媚眼,鼻血直冒3万多尺"
    res = strvar.format(["庄哲浩","罗群华","龙俊成","潘智慧"] , ("谢文婷","邓石山","周鑫") )
    print(res)
    
    strvar = "{group1[3]}向{group2[2]}抛媚眼,鼻血直冒3万多尺"
    res = strvar.format(group1 = ["庄哲浩","罗群华","龙俊成","潘智慧"] , group2=("谢文婷","邓石山","周鑫") )
    print(res)
    
    # 在字符串format 格式化的时候,如果获取的是字典当中的某个值,一定不要在键的两边加引号.因为此时字典中的键作为参数(变量)来进行传输
    strvar = "{group1[0]}向{group2[zwc]}抛媚眼,鼻血直冒3万多尺"
    res = strvar.format(group1 = ["庄哲浩","罗群华","龙俊成","潘智慧"] , group2={"zwc":"中文菜","ly":"刘毅"} )
    print(res)
    
1.221 format的填充符号的使用 ( ^ > < )
"""
^ 原字符串居中
> 原字符串居右
< 原字符串居左
{who:!<10}
who : 关键字
!   : 要填充的字符  (默认填充空格)
<   : 原字符串居左
10  : 字符串的总长度是10
总长度(10) = 原字符串长度 + 填充字符的长度
"""
  • :d 整型占位符 (强制类型的)

    • : 2d 原字符串默认具右
  • :f 浮点型占位符 (强制类型的)

    • : .1f 保留一位小数 存在四舍五入
  • ? 字符串占位符 (强制类型的)

  • : , 金钱占位符

  • 练习:

    # 强制指定参数类型
    strvar = "{:s}".format("林振辉")
    print(strvar)
    # 关键字传参
    strvar = "{who}".format(who="林振辉")
    print(strvar)
    # 关键字传参,并且指定类型是字符串
    strvar = "{who:s}".format(who="陈雪斌")
    print(strvar)
    # 关键字传参,并且指定类型是字符串,并且通过*进行填充
    strvar = "{who:*^10s}".format(who="陈雪斌")
    print(strvar)
    # 容器类型传参,并且强制指定类型是字符串,并且通过*进行填充
    dic = {"name":"付振刚"}
    strvar = "{dic[name]:*<10s}".format(dic=dic)
    print(strvar)
    # 可以不强制指定类型,通过*进行填充
    dic = {"name":123}
    strvar = "{dic[name]:*<10}".format(dic=dic)
    print(strvar)
    # 可以不指定填充的符号,默认填充空格
    dic = {"name":123}
    strvar = "{dic[name]:^10}".format(dic=dic)
    print(strvar)
    

版权声明:本文为weixin_43250159原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。