• 流程控制之for循环、基本数据类型及其内置方法


    一 循环之for循环

    1、for循环的语法与基本使用

    1.1、什么是for循环

      循环就是重复做某事,for循环是python提供的第二种循环机制

    1.2、为何要有for循环

      理论上for循环能做的,while循环也能做

      for循环在循环取值(遍历取值)比while循环更简洁

    1.3、如何用for循环

    语法:

    for变量名 in 可迭代对象:#可以是列表、字典、字符串、元组、集合

      代码1

      代码2

      代码3

    基本循环使用之循环取值

    2、for循环应用

    #案例1:遍历列表

    简单版

    l = ['alex_dsb','lxx_dsb','egon_nb']

    for x in l:

      print(x)

     

    复杂版

    l = ['alex_dsb','lxx_dsb','egon_nb']

    in < 0

    while i <3:

      print(i)

      i+=1

    #案例2:字典循环取值

    简单版

    dic = {'k1':111,'k2':222,'k3':333}

    for k in dic:

    print(k,dic[k])

    复杂版:while喜欢可以遍历字典,麻烦

     

    #案例3:字符串循环

    简单版

    msg = 'you can you up,no can no bb'

    for x in msg:

      print(x)

    每个字母都会遍历

    复杂版:while循环可以遍历字典,麻烦

    3、for循环嵌套

    range功能介绍:

    range(10)  #打印从0-9

    range(1,9) #1...8,走1开始

    range(1,9,1)

         步长为1

    range(1,9,2)

         步长为2

    #例1:

    for i in range(30):

      print('>>>:')

    打印30行    >>>:

    for i in range(3):
    for k in range(5):
    print("*",end='')
    print() #print()表示换行

    *****

    *****

    *****

    #例2:

    九九乘法表

    for i in range(1,10):
    for j in range(1,i+1):
    print('%s*%s=%s'%(i,j,i*j),end=' ')
    print()


    1*1=1 2*1=2 2*2=4 3*1=3 3*2=6 3*3=9 4*1=4 4*2=8 4*3=12 4*4=16 5*1=5 5*2=10 5*3=15 5*4=20 5*5=25 6*1=6 6*2=12 6*3=18 6*4=24 6*5=30 6*6=36 7*1=7 7*2=14 7*3=21 7*4=28 7*5=35 7*6=42 7*7=49 8*1=8 8*2=16 8*3=24 8*4=32 8*5=40 8*6=48 8*7=56 8*8=64 9*1=9 9*2=18 9*3=27 9*4=36 9*5=45 9*6=54 9*7=63 9*8=72 9*9=81 Process finished with exit code 0

    4、for + break =while + break

       for + else = while + else

       for + continue  结束本次进入下一次

    例:

      for i in range(6)

        if i ==4

          continue

        print(i)

    0 1 2 3 5

    二 数据类型及其内置方法

    1、数字类型int与float

    #int:整型

    age = 10 #本质age = int(10)

    可以将由纯整数构成的字符串直接转换成整型,若包含其他任意非整数符号,则会报错

    s = '12.3'
    res = int(s)
    print(res,type(res))

    Traceback (most recent call last): File "D:/JetBrains/New Test/New 1/3.10.py", line 60, in <module> res = int(s) ValueError: invalid literal for int() with base 10: '12.3'

    #float:浮点型

    s = 3.3 #本质s = float(3.3)

    2、类型转换

    十进制转其他进制

    二进制:bin(3) -> '0b11'

    八进制:hex(17) ->'0x11'

    十六进制:hex(17) -> '0x11'

    其他进制转十进制:

    二进制:int('0b11,2') ->3

    八进制:int('0o11',8) ->9

    十六进制:int('0x11',16) ->17

    3、使用

    int与float;没有需要掌握的内置方法

    他们的使用就是数学运算+比较运算

    三 字符串类型

    1、定义:

    在单引号双引号三引号内包含一串字符

    2、类型转换

    str可以把任意其他类型都转成字符串

    res=str({'a':1})
    print(res,type(res))
     
     
    {'a': 1} <class 'str'>

    3、使用:内置方法

    3.1 优先掌握

    3.1.1、按索引取值(正向取+反向取) :

    msg='hello world'

    a、正向取

    print(msg[0])

    print(msg[5])

    b、反向取

    print(msg[-1])

    c、只能取

    msg='hello python!'
    msg[0] = 'H'
    print(msg)

    Traceback (most recent call last): File "D:/JetBrains/New Test/New 1/3.10.py", line 64, in <module> msg[0] = 'H' TypeError: 'str' object does not support item assignment

    3.2、切片

    a、顾头不顾尾:

    取出索引0-8的字符

    msg[0:9]

    hello pyt

    b、步长:    0:9:2 第三个参数2代表步长,会从0开始,每次间隔2,即0、2、4、6

    msg[0:9:2]

    hlopt

    c、反向切片

    msg[::-1]  #-1表示从右往左依次取值

    msg='hello python!'
    msg=msg[::-1]
    print(msg)

    !nohtyp olleh

    d、长度len

    获取字符串的长度,即字符的个数,但凡存在于引号内的都算作字符

    len(msg)  #空格也算字符

    13

    e、成员运算in 和 not in

    #int :判断hello 是否在msg里

    ‘hello’ in msg

    True

    #not in :判断tony是否不在msg里面

    ‘tony’ not in msg

    True

    f、strip移除字符串首尾指定的字符(默认移除空格)

    #括号内不指定字符,默认移除首尾空格

    msg = '  life is short! '

    msg.strip()

    life is short!

    #括号内指定字符,移除首位指定的字符

    msg1 = '**tony**'

    msg1.strip('*')

    tony

    g、切分split

    # 括号内不指定字符,默认以空格作为切分符号

    msg2 = 'hello world'

    msg2.split()

    ['hello','world']

    #括号内指定分隔字符,则按照括号内指定的字符切割字符串

    msg3 = ‘127.0.0.1’

    msg3.split(‘.’)

    ['127','0','0','1']

    h、循环

    msg4 = '今天你好吗?'

    for line in msg4: 依次取出字符串中每一个字符

    print(line)

    3.3 需要掌握的操作

    a、strip,lstrip,rstrip

    str1 = '**tony***'
    a=str1.strip('*') # 移除左右两边的指定字符
    b=str1.lstrip('*') # 只移除左边的指定字符
    c=str1.rstrip('*') # 只移除右边的指定字符
    print(a,b,c)

    tony tony*** **tony

    b、lower(),upper()

    lower():英文字母全部小写

    upper():英文字母全部大写

    c、startswith,endswith

    判断字符串是否已括号内指定的字库开头/结尾,结果为True/False

    d、split、rsplit

    # split会按照从左到右的顺序对字符串进行切分,可以指定切割次数
    str5='C:/a/b/c/d.txt'
    a=str5.split('/',1)

    print(a)

    # rsplit刚好与split相反,从右往左切割,可以指定切割次数
    str5='a|b|c'
    b=str5.rsplit('|',1)

    print(b)

    ['C:', 'a/b/c/d.txt'] ['a|b', 'c']

     

    e、join

    ’%‘ 针对字符串。

    hello,‘%’。join('hello')->'h%e%l%l%o'

    ’|‘  针对列表,取出多个字符串|作为分隔符号拼接 

    ‘|’.join(['tony','18','read'])

    f、replace

    #新字符代替旧字符

    语法:replace('旧字符',‘新字符’)

    #指点修改个数,从左往右开始

    g、isdigit

    判断字符串是否是纯数字组成,返回结果为True 或 False

    msg= ‘46’

    msg.isdigit()

    age=input('请输入你的年龄:').strip()
    if age.isdigit():
    age=int(age) # int("abbab")
    if age > 18:

    print('猜大了')
    elif age < 18:
    print('猜小了')
    else:
    print('才最了')
    else:
    print('必须输入数字,傻子')

    3.4 了解操作

    1、find,rfind,index,count

    find:从字符串的第一个字母或数字开始索引,找到返回1,找不到返回-1

    a、index:同find,但找到会报错

    b、count:统计字符串在大字符串中出现的数次

    msg='hello everyone'

    a = msg.count('e',1,6) #索引e从1开始到5范围内出现的次数

    2、center,ljust,rjust,zfill

    xxx.center(总宽度,’要填充的字符‘) 字符串居中显示

    xxx.ljust(总宽度,’要填充的字符‘)字符串左对齐显示

    xxx.rjust()字符串右对齐

    xxx.zfill(总宽),字符串右对齐显示,不够用0填充

    3、captalize:首字母大写

    swapcase:大小写反转

    title:每个单词的首字母大写

    for i in range(30):
    for i in range(5):
    print('*',end ='')
    print()
  • 相关阅读:
    数据结构~线性表
    JQuery一行搞定当前面所对应的导航菜单变亮效果
    数据结构~二叉树
    MVC工作中的笔记~1(架构师是一步一步练成的)
    数据结构~链表
    java中文转拼音
    Bitmap旋转和缩放
    老师们都是这样计算毕业设计分数的
    Mysql ERROR 1040 (HY000): Too many connections
    统计没有使用绑定变量的sql语句
  • 原文地址:https://www.cnblogs.com/NevMore/p/12458622.html
Copyright © 2020-2023  润新知