oldboy third day. I love Python. str(字符串)用法

  Today is Friday.今天是周五, 明天放假, 可以睡个懒觉了. 哈哈哈! 嘘, 偷懒的事等会再说, 还是先来一波  课堂笔记吧. 哈哈哈:

  Today's note:(哎因为英语太烂了, 尽量能改英语的小地方,我就都改了哈哈,学习学习.)

一, 昨日内容回顾:
  1, 格式化输出
    %s: 占位符(字符串(全能))
    %d:数字
    %%:转义 %
  2, 运算符
    1, 算术运算
    2, 比较运算
    3, 赋值运算: +=; -=, *=, /=
    4,逻辑运算
      and:两边同时成立才为真
      or:两边有一个为真便为真
      not:非真既假,非假既真
      in: 判断xxx是否出现在xxxxx中
      not in:判断xxx是否没有出现在xxxxx中

  3, 编码的问题
    1, ASCII
    2, GBK
    3, Unicode
    4, utf-8

二, 作业回顾

三,基本数据类型:
  1, 基本数据类型的简介:
    1,int 整数.
    2,str 字符串. 字符串一般不存储大量的数据,不好操作
    3.bool 布尔值.
    4.list 列表 []
    5.tuple 元组() 只读列表
    6.dict 字典{} 查找比较快. key:value , 一次存俩数据.
    7.set 集合{} 集合, 一次存一个, 不能重复, 只存key. 比较少见

  2, int(存在的用法): bit_length:(表示在内存中,二进制的长度(求的是有效长度))

  3. bool 布尔值的转换:
    数字转换为bool:如果数字是非零 结果就是True

  4.str: 字符: 单个文字符号; 字符串: 把字符连成串.
    字符串常用的方法:

      1,索引: 字符串中的第几个字符; 索引 正向 从 0 开始, 反向 从 -1开始; 索引 必须用 []
      

      2, 切片: 顾头不顾尾: **切***记** 前面的能切到,最后的那位切不到;
        如果,只有两个参数,默认从右开始切
        如果右边的值,超过了,字符串长度,切到最后
        切片: ********顾头不顾腚 !!!!!!!! 不能忘

  5. 字符串的相关操作:
***************切记, 字符串是不可变对象,所以任何操作都不会印象原来的字符串**************
    1. 大小写转来转去
      str.capitalize()           首字母大写
      str.title() (标题)          每个单词首字母大写,特殊字符后面的每个单词,都进行首字母大写, 中文算特殊字符
      str.upper()                 全部转化成大写字母
      str.lower()                  全部转化成小写字母
      str.swapcase()          大小写转换
      str.casefold()             转化成小写, 不常用

    2. 居中 和 更改 teb:

      str.center(参数==拉长的长度, 参数==填充空白的东西, ) 居中
      str.expandtabs()       更改 \t 变成8个空格

    3.去掉空格 strip:

      str.strip(xxx)             去掉左右两边的xxx(默认参数为空格) ****重点*****
      str.lstrip()                  去掉左边的空格
      str.rstrip()                 去掉右边的空格

    4.替换 replace:

      str.replace(参数1, 参数2, 参数3)              替换  把参数1替换成参数2,  参数3表示替换的次数,默认 mox(全部)

    5.切割 split:

      str.split(参数1 = 用什么来切,   参数2 = 切的次数 默认是-1 切到最后)     切割 :  用 参数1 把str切割 参数2 次,断开的字符串,组成一个列表, 同时丢失掉 参数1的字符串.

      切割完后的结果 是list 列表

      如果 原字符串,和刀一样,得到是有两个空字符的列表;

      如果刀在原字符串中找不到切点,得到的还是原字符;

      如果是 空字符串, 就报错了;

      如果在 开头 或者 结尾的时候 出现了你的刀, 一定会出现空字符串
 

    6, 格式化 ('{}').format() 可以指定放啥东西 

    7. 查找: 

      str.count(参数=你想找的某些东西)                                                                                        数数; 计算参数 在原字符里出现的次数,如果没有出现则 返回 0
      str.find(参数1=在哪个索引位开始出现, 参数2=开始的索引位, 参数3=结束的索引位)            查找; 如果你要查找的内容不存在,则返回 -1, 如果存在,则返回索引, 参数2 和 参数3 组成切片的功能,
      str.index()                                                                                                                              查找; 如果找不到,则报错; 如果找到 则返回索引的值
    

    8. 条件判断:
      str.startswith()       判断str是否以参数开头,返回bool
      str.endswith()        判断str是否以参数结尾,返回bool
      str.isalnum()       是否以字母和数字组成
      str.sidigit()        是否以数字组成 (不识别小数点)
      str.isalpha()        是否以字母组成
      str.isnumeric()      判断是否以数字组成(可以识别中文大写数字) (不识别小数点)
      

      len(str)          判断字符有多长 (内置函数)

难题: 判断字符串是否是小数.
  提示:   1.判断有且只有一个小数点
        2.判断第一位是不是数字


    9. 迭代: for循环 yied

***************切记, 字符串是不可变对象,所以任何操作都不会印象原来的字符串**************

  Today, only those notes.Next, let's statr today's chat!

  今天,只有这些笔记. 接下来,让我们开始今天的闲聊.

  今天的知识很多,一上午的时间没有讲完.占用了下午将近1个半小时. 大纲不多, 关键是字符串( str )的用法 比较多,一个一个讲下来, 时间很长, 也很无聊, 就想老奶奶的裹脚布, 又臭又长. 哈哈, 开个小玩笑.  老师还是讲的相对来说蛮有意思的, 比自己一个人呆在家里看视频, 读书, 要有意思多了. 哈哈.

  再就是有段内容, 在上午的时候, 花了蛮久时间的呢, 等下, 我找找看哦~~~ 找到了,就是 bool 的转换. 当时老师讲的案例是......等等啊,让我插个代码块进来. 

 1 # 向系统中录入员工信息, 可以不停重复的录入 , 且当 输入回车时退出
 2 while True:    #  死循环的确立 
 3      name = input("输入用户信息:")  
 4      if not name:
 5          break
 6      else:
 7          print("新员工信息:"+name)
 8 
 9 # 代码是没有毛病的,但是对于小白来说,可能不太能理解  not name 的意思
10 # 所以在 课堂上面老师说了很多, 但是还是有很多人看起来很不理解的样子. 
11 # 我简单说下我自己的理解: 从代码第一行开始:
12 
13 #  当 条件判断是 真 的时候, 执行循环  (此处变成了一个死循环) 
14 #     把用户输入的东西 (输入的str) 赋值给 变量 name
15 '''     现在进行条件判断 (判断一下用户是不是输入了回车,这里需要注意一点就是,回车就是空字符,意思的False),  (这个时候,很多人可能 不能理解 not name 的意思,所以现在 重点来了,先来十个**********吸引一下你的眼睛)  (判断用户是否输入回车; 这句话翻译成代码应该就是:  if name == '':  (如果这行代码你不理解的话,你可以私我.), 值得注意的是,此时 '' 这个空字符串他是 假,也就是False, 当 name == False 的时候, (name == False)这个等式就代表 False , 到这里如果你不理解,我也没啥办法- -,哈哈 开个玩笑, 这个时候,(if name =='':) 就可以省略成 (if name: ),但是 但是 但是, 请注意这一点,  如果用户输入了回车,此时,name就是False,如果是False的话,(if name:)这个判断就会判断为False,下面的代码是不执行的,但是,这不是我们想要的效果,所以在前面加个 not 就变成了上面的那几行代码)'''
bool的转化

呃呃, 这是第一次插代码,里面还是文本写的比较多,  不是很美丽, 您这儿就将就这看呗! 哈哈哈.  哎,现在算是感觉到了 小编 不好做啊 - _ -!!!  其实 这些都还是蛮简单的, 写代码, 终究是 写的是 自己的思路, 基础知识, 很简单, 而且不复杂, 难的自己 去写代码时的思路, ... 漫漫长路 仍需努力, 不过就目前来看,学习 python的 路上我还是有很多朋友 一起的, 很开心,哈哈. 扯偏了 扯远了 哈哈. 回来回来.

  上午呢, 大概就是讲了点上面的内容, 一直讲到, 讲到那个 str的格式化 好像, 哎 - - 这有点记不清了 哈哈.  不过这都是小事, 只要知道 今天一共讲了点啥 就好,哈哈.

  下午,我记得 好像是一直讲到了快5点的时候才 结束, str 的方法 有点多, 这是没办法的. 然后后来 老师把作业发了. 因为要过周末嘛, 作业留的有点小多- -! 写了有一段时间呢.  头两天的时候, 在做作业的时候,基本上我没有出现过什么问题, 但是,今天 出现了哦!  一共出现了两个 bug ,之所以 出现了, 而且 我自己也不会解决的根本原因, 是因为 我对 字符串的使用方法 记忆不深,理解不深, 表现出来的结果就是, 当此路不通的时候, 我就不知道第二条路该咋走了, 思维还是不够灵活, 还是比较笨- -  现在都是吃的之前的老本 比较惨. 我觉得自己 在周末的这两天,在把 作业的第一题 挨个做一遍.

  说了这么多, 还没说那俩小bug 是啥呢   哈哈, 别着急,下面就是:

    1, 13) 将name变量对应的值首字母"a"大写,并输出结果
        疑问: str.capitalize() (首字母大写)如果str中开始 后面的字母有大写, 后面会不会变成小写
        答: str.capitalize() 方法的实现过程是,先把所有字母小写,然后在大写首字母. 如果str中开始 后面的字母有大写, 想进行首字母大写的话,需要把首字母提出来然后大写,在与原来的str 进行拼接.

    贴一波改正后的源代码:

 
 
name = "aleX leNb"

#
13) 将name变量对应的值首字母"a"大写,并输出结果 name_13_1 = name[0] name_13_1 = name_13_1.capitalize() name_13 = name_13_1 + name[1:] print(name_13)

    贴一波没改前的代码:

 
 
name = "aleX leNb"

#
13) 将name变量对应的值首字母"a"大写,并输出结果 name_13 = name[0] name_13 = name_13.capitalize() print(name_13)

    自己体会 哈哈哈.

    8,升级题:实现一个整数加法计算器(多个数相加):
    如:content = input("请输入内容:") 用户输入:5+9+6 +12+ 13,然后进行分割再进行计算。

      疑问:在写好的代码中,我用了int()方法,但是假如 用户输入: 5+ 1 0+10+ 9 +5 就会报错, '1 0'
      答: 用str.replace() 替换的方法, 把字符串里面的空格替换成空 => str.replace(' ','')

  

    贴一波改后的源代码:

# 8,升级题:实现一个整数加法计算器(多个数相加):
# 如:content = input("请输入内容:") 用户输入:5+9+6 +12+  13,然后进行分割再进行计算。

print('整数加法计算器,输入回车退出程序')
sum = 0
while 1:
    content = input("请输入计算内容:").strip()

    if not content:
        print('程序结束')
        break

    lis = content.split('+')
    for i in lis:
        n1 = i.replace(' ', '')  # 假如 用户输入 1 +  1 5 0 +  4  5   , 在这里用replace() 替换掉每个字符串里面的空格
        n = int(n1)
        sum += n
    print(sum)
    print('输入回车,结束程序')

     贴一波没改之前的代码:

# 8,升级题:实现一个整数加法计算器(多个数相加):
# 如:content = input("请输入内容:") 用户输入:5+9+6 +12+  13,然后进行分割再进行计算。

print('整数加法计算器,输入回车退出程序')
sum = 0
while 1:
    content = input("请输入计算内容:").strip()

    if not content:
        print('程序结束')
        break

    lis = content.split('+')
    for i in lis:

        n = int(n)
        sum += n
    print(sum)
    print('输入回车,结束程序')

    大家可以贴一下,看看里面的bug哈哈

  今天 就先到这里吧, 也不早了, 老师现在又要讲昨天的作业了, 今天早上的时候没讲完.哈哈 也就不写 鸡汤了, 半毒半不毒的. 哈哈哈 明天见 哈哈哈

 

猜你喜欢

转载自www.cnblogs.com/Fushengliangnian/p/9122287.html
今日推荐