zoukankan      html  css  js  c++  java
  • day8 for循环+基本数据类型(上)

    一 for循环

    1 什么是for循环

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

    2 为什么要有for循环

    for循环和while循环很像,基本上能做的事相同

    但是for循环在循环取值(遍历取值)比while循环方便

    while循环称之为条件循环,循环次数根据条件真假

    for循环称之为迭代循环,循环次数根据in后面跟的值的个数

    3 如何使用for循环

    语法

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

    扩展:range()

    range(3) #顾头不顾尾
    >>>rang[0,3]==>[0,1,2]
    range(1,4,1)#第一个数字是起始值,默认为0,第二个数字必须写,为结尾值,第三个数字是步长,默认为1
    >>>range[1,4]==>[1,2,3]
    #python对代码的优化,把range变成一个可以“下蛋的鸡”,想取的时候调用即可
    

    for循环中还可以用break,continue,else连用,具体方法和while相同

    username = "hz"
    passowrd = "123"
    for i in range(3):
        name_inp = input("请输入用户名:")
        pwd_inp = input("请输入密码:")
        if name_inp == username and pwd_inp == passowrd:
            print("登陆成功")
            break
        else:
            print("账号或密码错误")
    else:
        print("输错三次,退出!")
    

    扩展,print中“,”,end=“ ”, 的使用

    print("hello
    ","world",end="@")#,等于空格 
    等于换行,end=“”等于结尾符
    print("123
    ",end="*")
    >>>hello
    >>> world@123
    >>>*
    

    二 基本数据类型的内置方法

    int和float主要是数学运算和比较运算

    2 字符串

    2.1 类型转化

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

    a = {"x":123}
    b = str(a)
    

    2.2 内置方法(优先掌握)

    2.2.1 按索引取值
    msg = 'hello world' #从0开始依次索引
    print(msg[0])#只能取,不能改,因为是不可变类型
    >>>h
    
    2.2.2 切片
    msg = 'hello world'
    res = msg[0:5:1] #第一个数字是起始值,默认为0,第二个数字为结尾值,第三个数字是步长,默认为1,顾头不顾尾
    print(res)
    >>>hello
    print(msg[::-1]) #当步长为-1时,把字符串反转
    >>>dlrow olleh
    
    2.2.3 成员运算

    in, not in上一章已经讲过

    2.2.4 strip去掉字符串左右两边符号
    msg = '&&&&hello' 
    print(msg.strip("&"))#删除字符串左右两边和括号内字符相同的字符,默认为空格
    >>>hello
    
    2.2.5 切分
    msg = 'aaa,bbb,ccc'
    print(msg.split(","))#以()内的字符为分割符,默认是空格
    >>>['aaa', 'bbb', 'ccc']
    
    2.2.6 循环
    a = "hello"
    for i in a:
        print(i)
    >>>h
    >>>e
    >>>l
    >>>l
    >>>o
    

    2.3 需要掌握

    2.3.1 strip,lstrip,rstrip
    a  = "*****hz******"
    print(a.rstrip("*"))#去除右边指定字符
    print(a.lstrip("*"))#去除左边指定字符
    print(a.strip("*"))#去除两边指定字符
    >>>*****hz
    >>>hz******
    >>>hz
    
    2.3.2 lower,upper
    a = "hz IS dsb"
    print(a.lower())#使字符串全变成小写
    print(a.upper())#使字符串全变成大写
    >>>hz is dsb
    >>>HZ IS DSB
    
    2.3.3 startswith,endswith
    a = "hz is dsb"
    print(a.startswith("hz"))#字符串是否以指定字符开头
    print(a.endswith("bs"))#字符串是否以指定字符结尾  返回结果为布尔值
    >>>True
    >>>False
    
    2.3.4 format格式化输出
    print("hz is {hz},lxt is {lxt}".format(hz="dsv",lxt="dmv"))
    >>>hz is dsv,lxt is dmv
    print("hz is {0},lxt is {1}".format("dsv","dmv"))
    >>>hz is dsv,lxt is dmv
    
    2.3.5 split,rsplit
    a = "a,b,c,d,e"
    print(a.split(",",1))#从左到右以指定字符切分字符串,后面可以加切分次数
    print(a.rsplit(",",2))#从右到左以指定字符切分字符串
    >>>['a', 'b,c,d,e']#输出的是列表
    >>>['a,b,c', 'd', 'e']
    
    2.3.6 join
    print("%".join("hello"))#以指定字符来分隔字符串
    >>>h%e%l%l%o
    print('|'.join(['tony','18','read'])) # 从列表中取出多个字符串,然后按照丨作为分隔符号进行拼接
    >>>'tony|18|read'
    
    2.3.7 replace
    a = "hz is sb sb"
    print(a.replace("sb","dsb",1))#将旧字符串修改成新字符串,后可以加修改次数
    >>>hz is dsb sb
    
    2.3.8 isdigit
    a = "123123"
    print(a.isdigit())#判断字符串内是否全是数字,输出是bool
    b = "a12123"
    print(b.isdigit())
    >>>True
    >>>False
    

    2.4 了解操作

    # 1.find,rfind,index,rindex,count
    # 1.1 find:从指定范围内查找子字符串的起始索引,找得到则返回数字1,找不到则返回-1
    >>> msg='tony say hello'
    >>> msg.find('o',1,3)  # 在索引为1和2(顾头不顾尾)的字符中查找字符o的索引
    1  
    # 1.2 index:同find,但在找不到时会报错
    >>> msg.index('e',2,4) # 报错ValueError
    # 1.3 rfind与rindex:略
    # 1.4 count:统计字符串在大字符串中出现的次数
    >>> msg = "hello everyone"
    >>> msg.count('e')  # 统计字符串e出现的次数
    4
    >>> msg.count('e',1,6)  # 字符串e在索引1~5范围内出现的次数
    1
    
    # 2.center,ljust,rjust,zfill
    >>> name='tony'
    >>> name.center(30,'-')  # 总宽度为30,字符串居中显示,不够用-填充
    -------------tony-------------
    >>> name.ljust(30,'*')  # 总宽度为30,字符串左对齐显示,不够用*填充
    tony**************************
    >>> name.rjust(30,'*')  # 总宽度为30,字符串右对齐显示,不够用*填充
    **************************tony
    >>> name.zfill(50)  # 总宽度为50,字符串右对齐显示,不够用0填充
    0000000000000000000000000000000000000000000000tony
    
    # 3.expandtabs
    >>> name = 'tony	hello'  # 	表示制表符(tab键)
    >>> name
    tony    hello
    >>> name.expandtabs(1)  # 修改	制表符代表的空格数
    tony hello
    
    # 4.captalize,swapcase,title
    # 4.1 captalize:首字母大写
    >>> message = 'hello everyone nice to meet you!'
    >>> message.capitalize()
    Hello everyone nice to meet you!  
    # 4.2 swapcase:大小写翻转
    >>> message1 = 'Hi girl, I want make friends with you!'
    >>> message1.swapcase()  
    hI GIRL, i WANT MAKE FRIENDS WITH YOU!  
    #4.3 title:每个单词的首字母大写
    >>> msg = 'dear my friend i miss you very much'
    >>> msg.title()
    Dear My Friend I Miss You Very Much 
    
    # 5.is数字系列
    #在python3中
    num1 = b'4' #bytes
    num2 = u'4' #unicode,python3中无需加u就是unicode
    num3 = '四' #中文数字
    num4 = 'Ⅳ' #罗马数字
    
    #isdigt:bytes,unicode
    >>> num1.isdigit()
    True
    >>> num2.isdigit()
    True
    >>> num3.isdigit()
    False
    >>> num4.isdigit() 
    False
    
    #isdecimal:uncicode(bytes类型无isdecimal方法)
    >>> num2.isdecimal() 
    True
    >>> num3.isdecimal() 
    False
    >>> num4.isdecimal() 
    False
    
    #isnumberic:unicode,中文数字,罗马数字(bytes类型无isnumberic方法)
    >>> num2.isnumeric() 
    True
    >>> num3.isnumeric() 
    True
    >>> num4.isnumeric() 
    True
    
    # 三者不能判断浮点数
    >>> num5 = '4.3'
    >>> num5.isdigit()
    False
    >>> num5.isdecimal()
    False
    >>> num5.isnumeric()
    False
    
    '''
    总结:
        最常用的是isdigit,可以判断bytes和unicode类型,这也是最常见的数字应用场景
        如果要判断中文数字或罗马数字,则需要用到isnumeric。
    '''
    
    # 6.is其他
    >>> name = 'tony123'
    >>> name.isalnum() #字符串中既可以包含数字也可以包含字母
    True
    >>> name.isalpha() #字符串中只包含字母
    False
    >>> name.isidentifier()
    True
    >>> name.islower()  # 字符串是否是纯小写
    True
    >>> name.isupper()  # 字符串是否是纯大写
    False
    >>> name.isspace()  # 字符串是否全是空格
    False
    >>> name.istitle()  # 字符串中的单词首字母是否都是大写
    False
    
  • 相关阅读:
    【平衡规划】JZOJ4616. 【NOI2016模拟7.12】二进制的世界
    函数中,如何修改形参的默认值
    默认形参在函数定义阶段就已经被赋值,在调用时就可以不用再次赋值了。
    在函数调用时:位置形参、位置实参、关键字实参的特点
    return之为什么能够终止函数,代码演练
    深度理解return具体用法
    函数基础重点掌握内容:创建函数、return返回单个值、return返回多个值、函数名加括号与不加括号的区别
    python之encode和decode编码
    python利用setsockopt获得端口重用
    python并发之多进程
  • 原文地址:https://www.cnblogs.com/hz2lxt/p/12456008.html
Copyright © 2011-2022 走看看