菜鸟学Python第五天

流程控制

for循环

while循环 VS for循环:

while循环:称之为条件循环,循环的次数取决于条件何时为false

for循环:称之为迭代器循环,循环的次数取决于数据包含的成员个数

  1. for循环专门用来取值,在循环取值方面比while循环强大,以后

    遇到循环取值的场景,就应该用for循环

for循环对字典进行取值,取出的是字典的key。

  • for + break

for i in range(1,10):
if i == 3:
break 1
2
  • for + continue

for i in range(1,5):
if i == 3:
continue
​
1
2
4
  • for + else

    注意:else只有在for循环运行完毕且不被break打断的情况下才会被运行到

  • for循环的嵌套

# 九九乘法表
for i in range(1, 10): # 循环输出9行
for j in range(1, i+1): # 循环输出当前行的列数(与第一行i有关,i==1时,j只能取到1...)
print('%s * %s = %s ' % (i, j, i*j), end='') # 打印,end当前行不换行
print('') # 打印完一行后换行

数据类型详解

1. 整型:int

  • 作用:用来记录年龄、等级、各种号码状态
  • 定义:
age = 10

类型转换:int 可以将浮点型和纯数字的字符串转换为整型。

进制转换:(十进制转其他进制)

1.bin():十进制转二进制

2.oct():十进制转八进制

3.hex():十进制转十六进制

>>> i = 28
>>> print(bin(i))
>>> print(oct(i))
>>> print(hex(i))
​
0b11100
0o34
0x1c
  • 常用操作+内置方法

    略

  • 不可变
  • 存单个值

2.浮点型:float

  • 作用:用来记录身高,体重、工资状态
  • 定义:
height = 1.83

类型转换:float 可以将整型和仅包含数字的字符串转换成浮点型

  • 使用:略

3.字符串:str

  • 作用:用来记录描述性质状态,比如名字、性别等。
  • 定义:在单引号('')、双引号(" ")、三引号(''' ''', """ """)内包含一系列字符。
    • 三种不同引号的区别:

        1. 单引号和双引号基本无区别,都是用来存放单个字符串,但要注意的是要保证前后的一致性

        2. 三引号多用来存放多行字符串

        3. 字符串的嵌套时,要保证内外引号的差异性,否则就会报错

x = 'abc' # 等同于x = "abc"
​
y = """
abc
123
hahaha
"""
​
msg = 'my name is "Jason"'

类型转换:可以把任意类型转成字符串类型。

  • 使用:
    1. 字符串的加法运算(仅限于字符串同类型相加)

    2. 字符串的乘法(相乘的对象必须是int类型)

    3. 字符串之间的大小比较

  • 常用操作及内置方法
    • 优先掌握

      1. 按索引取值(正向取+反向取):只能取

        >>> name = 'abcdef'
        >>> print(name[1])
        b
        >>> print(name[-1])
        f
        >>>
      2. 切片(顾头不顾尾:步长)

        name = 'Jason'
        print(name[:]) # 默认按照正向步长取所有值
        print(name[1:4]) # 正向取索引1-3元素
        print(name[-5:-1:1]) # 正向步长从倒数第五个取到倒数第二个
        print(name[-1:-5:-1]) # 反向步长从倒数第一个取到倒数第四个
        print(name[::-1]) # 默认反向步长取整个字符串(字符串的倒置)
        ​
        Jason
        aso
        Jaso
        nosa
        nosaJ
      3. 长度 len() : 统计字符的个数

        >>> name = 'abcdef'
        >>> len(name)
        6
      4. 成员运算 in / not in

        判断字符串中是否包含某元素。

      5. 移除空白 strip:移除字符串左右两边的特定字符

        strip("")—>括号内可以是要去除的范围

        # 情镜一
        name = ' Jason '
        print(name.strip()) # 括号内不填默认去除空格
        Jason
        ​
        # 情境二
        name = '*-=+h/ello*(_+__'
        print(name.strip('*-=+/_()')) # 去除字符串两端所有括号内包含的字符,中间字符无法去除
        h/ello
      6. 切分 split : 把有规律的字符串切分成列表从而方便取值

        msg = 'Jason;23;183;78;single'
        print(msg.split(';'))
        ​
        ['Jason', '', '', '', 'single']
      7. 拼接 join : Python join() 方法用于将序列中的元素以指定的字符连接生成一个新的字符串。

        msg = ['Jason', '', '', '', 'single']
        print(':'.join(msg))
        ​
        'Jason:23:183:78:single'

        注:join本质上是将列表中的元素按照其原来的数据类型分别取出后进行拼接,由于字符串的拼接只支持字符串相互间的拼接,所以join只能对只含有字符串类型的序列进行拼接。

    • 需要掌握的操作

      1. strip()、rstrip()、lstrip():去除字符串两边字符、右边字符、左边字符

      2. upper()、lower():将字符串转化为全部大写、将字符串转化为全部小写

      3. startswith()、endswith():判断字符串是否以某字符开头、是否以某字符结尾结尾

      4. 格式化:format的三种玩法

        1. 用法类似于%s,赋值需要严格按照前后对应以及参数数量关系关系

          msg = 'my name is {} my age is {}'. format('Jason', 23)
          print(msg)
          ​
          my name is Jason my age is 23
        2. 用法较第一种有所改进,按照索引决定对应关系。

          msg = 'my name is {0} my age is {1},{1},{1}'. format('Jason', 23)
          print(msg)
          ​
          my name is Jason my age is 23,23,23
        3. 第三种用法更加清晰明了,在{}填充描述性的变量名,并将变量名与变量值相对映。(推荐使用)

          msg = 'my name is {name} my age is {age}'. format(name='Jason', age=23)
          print(msg)
          ​
          my name is Jason my age is 23
      5. split、rsplit:切分(默认从左开始切分)、从右开始切分

        # str.split('切分符', 切分次数)
        cmd='get|a.txt|33333'
        print(cmd.split('|',1))
        print(cmd.rsplit('|',1))
        ​
        ['get', 'a.txt|33333']
        ['get|a.txt', '']
      6. replace:替换

        # str.replace('old','new',count)
        msg = 'Jason is so humor!'
        print(msg.replace('humor', 'smart'))
        ​
        Jason is so smart!
      7. isdigit :判断字符串是否由纯数字组成

        # str.isdigit()
        age = ''
        print(age.isdigit())
        ​
        True
    • 了解掌握

      内嵌方法 用途
      find()、rfind() 查找从左、从右元素位置,返回第一个找到的索引(找不到返回-1)
      index()、rindex() 查找从左、从右元素位置,返回第一个找到的索引(找不到报错)
      count() 查找元素在str中出现的次数,可指定范围
      center() 将字符串居中显示,并指定填充内容和填充长度
      ljust()、rjust() 将字符串向左、向右对齐,并指定填充内容和填充长度
      zfill() 将字符串填充至指定长度,原字符串向右对齐,往左边以‘0’填充
      captalize() 将字符串首字母大写
      swapcase() 翻转 str 中的大小写
      title() 将字符串中每个单词首字母大写
      isalnum() 判断str中是否由字母 或 数字组成
      isalpha() 判断字符串是否由字母组成
      islower()、isupper() 判断str是否为纯小写、纯大写
      isspace() 判断str是否只包含空格
      istitle() 判断str中每个单词的首字母是否大写
  • 总结:

      1. 存一个值

      2. 有序

      3. 不可变

        可变:值变,id不变。可变==不可hash

        不可变:值变,id就变。不可变==可hash

Python字符串操作详解的更多相关文章

  1. Python 字符串方法详解

    Python 字符串方法详解 本文最初发表于赖勇浩(恋花蝶)的博客(http://blog.csdn.net/lanphaday),如蒙转载,敬请保留全文完整,切勿去除本声明和作者信息.        ...

  2. python第七篇:Python 列表操作详解

    Python列表操作详解 list函数 list()   #生成一个空的列表 list(iterable)  #用可迭代对象初始化一个列表 列表的 and 运算和 or 运算 列表and运算 > ...

  3. shell字符串操作详解

    shell字符串操作详解的相关资料. 1.shell变量声明的判断  表达式 含义 ${var} 变量var的值, 与$var相同 ${var-DEFAULT} 如果var没有被声明, 那么就以$DE ...

  4. python/ORM操作详解

    一.python/ORM操作详解 ===================增==================== models.UserInfo.objects.create(title='alex ...

  5. python 字符串操作方法详解

    字符串序列用于表示和存储文本,python中字符串是不可变对象.字符串是一个有序的字符的集合,用于存储和表示基本的文本信息,一对单,双或三引号中间包含的内容称之为字符串.其中三引号可以由多行组成,编写 ...

  6. python字符串操作方法详解

      字符串 字符串序列用于表示和存储文本,python中字符串是不可变对象.字符串是一个有序的字符的集合,用于存储和表示基本的文本信息,一对单,双或三引号中间包含的内容称之为字符串.其中三引号可以由多 ...

  7. linux shell 字符串操作详解 (长度,读取,替换,截取,连接,对比,删除,位置 )

    在做shell批处理程序时候,经常会涉及到字符串相关操作.有很多命令语句,如:awk,sed都可以做字符串各种操作. 其实shell内置一系列操作符号,可以达到类似效果,大家知道,使用内部操作符会省略 ...

  8. linux shell 字符串操作详解(获取长度、查找,替换)

    在做shell批处理程序时候,常常会涉及到字符串相关操作.有许多命令语句,如:awk,sed都能够做字符串各种操作. 事实上shell内置一系列操作符号,能够达到相似效果,大家知道,使用内部操作符会省 ...

  9. Python文件操作详解

    Python内置了一个open()方法,用于对本地文件进行读写操作.这个功能简单.实用,属于必须掌握的基础知识. 使用open方法操作文件可以分三步走,一是打开文件,二是操作文件,三是关闭文件.下面分 ...

随机推荐

  1. nginx和uwsgi的区别和作用

    Django+uwsgi+nginx nginx和uwsgi的区别和作用: 1, nginx是对外的服务器,外部浏览器通过url访问nginx, uwsgi是对内的服务器,主要用来处理动态请求. 2, ...

  2. UWP 版本号

    一:版本号 个人开发者对于版本号的命名相对随便一点,如果是大公司的话,命名则要规范一点.以开发UWP为例 在创建包的时候,开发者可以自定义版本号或者点击自动增加. 二:对应上图中的四个格子中的数字 第 ...

  3. JS中的关系操作符与自动转型

    很多时候对数据操做时都会遇到数据转换,有的是显示转化,有的是隐式转化,即调用默认的规则进行数据转换,经常会把数据转换的方式搞混,于是就花了点时间做了个小小的总结: 一元操作符(--,++,-,+)作用 ...

  4. c51中的bit,SBIT

    在51单片机的0x20~0x2f,是bdata区既可以字节寻址又可以位寻址.用法: 1 先用bdata存储类型关键字 定义变量,注意其值就是地址 .unsigned char bdata MYBITS ...

  5. 小程序 显示Toobar

    要实现的效果 在 下面app.json  中加下列代码   "tabBar": { "color": "#7A7E83", "se ...

  6. #52. 【UR #4】元旦激光炮 (交互式题)

    链接:http://uoj.ac/problem/52 刚刚越过绝境长城,只见天空中出现了炫目的光芒 —— 圣诞老人出现了. 元旦三侠立刻进入战斗.生蛋侠.圆蛋侠和零蛋侠分别有 na,nb,ncna, ...

  7. vue2.0:(二)、mock数据

    什么是mock数据呢?很多情况下,后台的搭建比起前端来说要麻烦的多,所以,常常是前端写好了页面以后后台接口却没有写好,但是在一个项目中,接口调试确实是最浪费时间的,所以,往往前端需要自己模拟数据. 第 ...

  8. .aspx IIS发布404.17时候的问题

    .aspx IIS发布404.17时候的问题 在发布aspx的时候遇到问题利用网上的cmd加入注册表没有效果 在加入了MIME中加入.aspx和application/.aspx之后却变成了下载文件 ...

  9. LOJ#111. 后缀排序(二分 hash)

    题意 给出一个字符串,求出排名为$i$个字符串在原串中的开始位置 Sol 纪念一下这伟大的时刻qwq. 我用二分+hash把这题水过去了qwq. #include<cstdio> #inc ...

  10. Warning: skipping non-radio button in group

    Question:   最近在开发中,设计了一个对话框来进行一系列的设定,其中有一组Radio Buttons(单选按钮),但在Debug下,发现对话的弹出有点延迟,经过分析,确定是因为在对话框弹出之 ...