zoukankan      html  css  js  c++  java
  • day3——int,bool,str操作

    1,基本数据类型
    int 整数
    str 字符串 一般不存放大量的数据
    bool 布尔值,用来判断。 True,False
    list 列表。存放大量数据,[]表示,里面可以放各种数据类型
    tuple 元祖,只读列表 ()表示
    dict 字典。 {key:value}
    set 集合。 去重
    2,int类型
    bit_length() 返回一个数的二进制长度 (——有生之年用不到

    3,bool类型
    只有 True 和 False,一般没有什么操作
    类型转换的问题:
    所有的空为False,非空为True
    想把某数据转换成xxx数据类型, => xxx(数据)
    str > int int(str)
    int > str str(int)
    str > bool bool(str) 非空为True
    int > bool bool(int) 非0为True

    4,str类型
    字符串式不可变的数据类型,不论你执行任何操作,原字符串都是不会改变的,
    每次操作都会返回新字符串

    索引和切片
    索引下标从0开始。 [索引]是你不
    切片里的第二个位置的数可以超出索引,只会给出最后一个值,不会报错
    步长:第三个参数控制方向, 1 > 正向 -1 > 反方向从优往左切

    6,str相关操作
    大小写转换:*——记住
    * upper() 全大写
    title() 首字母大写(只要是不属于英文字母的都是分隔符)
    切来切去:
    center(10,'*') 强行用*在原字符串左右两端拼接,拼接成十个长度
    * strip() 去除前后两边的空格 lstrip() rstrip()
    * replace(old,new) 替换
    * split() 切割(切完的结果是一个列表里面装着字符串)
    注意:贴边则是有空字符串
    * startswith() endswith 以什么开头
    都可以进行索引的操作
    * count() 计算出现的次数
    * find() 查找xxx在字符串中出现的位置索引,只找第一个,找不到返回-1
    * index() 查找xxx在字符串中出现的位置索引,只找第一个,找不到报错
    条件判断:
    .isalnum 字母数字
    .isdigit 数字
    .isalpha 字母
    .isnumeric 中文数字大小写都可以
    字符串长度:
    * len() 字符串中字符的个数 (python中的内置函数)

    迭代: ——for循环表示把迭代的对象中的每一个元素赋值给前面的变量
    for 变量 in 可迭代对象:
    循环体,也存在break和continue
    else:
    当循环结束的时候才会执行

    day3——作业

    1.有变量name = "aleX leNb" 完成如下操作:
    name = "aleX leNb"
    1)移除 name 变量对应的值两边的空格,并输出处理结果
    s = name.strip()
    print(s)
    2)移除name变量左边的"al"并输出处理结果
    s = name.strip('al')
    print(s)
    3)移除name变量右⾯的"Nb",并输出处理结果
    s = name.strip('Nb')
    print(s)
    4)移除name变量开头的a"与最后的"b",并输出处理结果
    s = name.lstrip('a').rstrip('b')
    print(s)
    5)判断 name 变量是否以 "al" 开头,并输出结果
    print(name.startswith('al'))
    6)判断name变量是否以"Nb"结尾,并输出结果
    print(name.endswith('Nb'))
    7)将 name 变量对应的值中的 所有的"l" 替换为 "p",并输出结果
    print(name.replace('l','p'))
    8)将name变量对应的值中的第⼀个"l"替换成"p",并输出结果
    print(name.replace('l','p',1))
    9)将 name 变量对应的值根据 所有的"l" 分割,并输出结果。
    print(name.split('l'))
    10)将name变量对应的值根据第⼀个"l"分割,并输出结果。
    print(name.split('l',1))
    11)将 name 变量对应的值变⼤写,并输出结果
    print(name.upper())
    12)将 name 变量对应的值变⼩写,并输出结果
    print(name.lower())
    13)将name变量对应的值⾸字⺟"a"⼤写,并输出结果
    print(name.capitalize())
    14)判断name变量对应的值字⺟"l"出现⼏次,并输出结果
    print(name.count('l'))
    15)如果判断name变量对应的值前四位"l"出现⼏次,并输出结果
    print(name.count('l',0,5))
    16)从name变量对应的值中找到"N"对应的索引(如果找不到则报错),并输出结果
    print(name.index('N'))
    17)从name变量对应的值中找到"N"对应的索引(如果找不到则返回-1)输出结果
    print(name.find('N'))
    18)从name变量对应的值中找到"X le"对应的索引,并输出结果
    print(name.find("X le"))
    19)请输出 name 变量对应的值的第 2 个字符?
    print(name[1])
    20)请输出 name 变量对应的值的前 3 个字符?
    print(name[:3])
    21)请输出 name 变量对应的值的后 2 个字符?
    print(name[-2:])
    22)请输出 name 变量对应的值中 "e" 所在索引位置?
    ①
    print(name.find('e'))    #第一个e
    print(name.find('e',4,8))   #第二个e的位置
    
    ②
    index= 0
    for i in name:
        if i == 'e':
            print(index)
        index += 1
    View Code


    2.有字符串
    s = "123a4b5c"
    1)通过对s切⽚形成新的字符串s1,s1 = "123"
    s1 = s[:3]
    print(s1)
    2)通过对s切⽚形成新的字符串s2,s2 = "a4b"
    s2 = s[3:6]
    print(s2)
    3)通过对s切⽚形成新的字符串s3,s3 = "1345"
    s3 = s[::2]
    print(s3)
    4)通过对s切⽚形成字符串s4,s4 = "2ab"
    s4 = s[1:6:2]
    print(s4)
    5)通过对s切⽚形成字符串s5,s5 = "c"
    s5 = s[7:100]
    print(s5)
    6)通过对s切⽚形成字符串s6,s6 = "ba2"
    s6 = s[-3::-2]
     print(s6)
    View Code



    3.使⽤while和for循环分别打印字符串s="asdfer"中每个元素。
    s="asdfer"
    ①
    count = 0
    while count < len(s):
        print(s[count])
        count +=1for i in s:
        print(i)



    4.使⽤for循环对s="asdfer"进⾏循环,但是每次打印的内容都是"asdfer"。
    s="asdfer"
    for i in s:
        print(s)


    5.使⽤for循环对s="abcdefg"进⾏循环,每次打印的内容是每个字符加上sb,
    例如:asb, bsb,csb,...gsb。
    s="abcdefg"
    for i in s:
        print(i + 'sb')

    6.使⽤for循环对s="321"进⾏循环,打印的内容依次是:"倒计时3秒","倒计时
    2秒","倒计时1秒","出发!"。

    s="321"
    for i in s:
        print('倒计时%s秒'%i)
    else:
        print('go')


    7,实现⼀个整数加法计算器(两个数相加):
    如:content = input("请输⼊内容:") ⽤户输⼊:5+9或5+ 9或5 + 9,然后进
    ⾏分割再进⾏计算。

    ①
    n = input('>>>').split('+')
    print(int(n[0].strip()) + int(n[1].strip()))
    
    ②
    content= input('>>>')
    num = content.split('+')
    s = (int(num[0].strip()) + int(num[1].strip()))
    print(s)



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

    content = input('>>>').strip()
    n = content.split('+')
    sum = 0
    for i in n:
        sum += int(i)
    print('终极运算之最后结果:%s'%sum)


    9,计算⽤户输⼊的内容中有⼏个整数(以个位数为单位)。
    如:content = input("请输⼊内容:") # 如fhdal234slfh98769fjdla

    content = input('>>>')
    count = 0
    for i in content:
        if i.isdigit():
            count += 1
    print(count)




    10、写代码,完成下列需求:
    ⽤户可持续输⼊(⽤while循环),⽤户使⽤的情况:
    输⼊A,则显示⾛⼤路回家,然后在让⽤户进⼀步选择:
    是选择公交⻋,还是步⾏? ①,选择公交⻋,显示10分钟到家,并退出整个程序。
    ②,选择步⾏,显示20分钟到家,并退出整个程序。
    输⼊B,则显示⾛⼩路回家,并退出整个程序。
    输⼊C,则显示绕道回家,然后在让⽤户进⼀步选择:是选择游戏厅玩会,还是⽹吧?
    选择游戏厅,则显示 ‘⼀个半⼩时到家,爸爸在家,拿棍等你。’并让其重新输⼊A,B,C选项。
    选择⽹吧,则显示‘两个⼩时到家,妈妈已做好了战⽃准备。’并让其重新输⼊A,B,C选项。


    flag = True
    while flag:
        choice = input('请输入你的选择
    A/a
    B/b
    C/c').strip()
        if choice.upper() == 'A':
            print('走大路回家')
            while flag:
                a = input('请输入序号:
    1:公交车
    2:步行').strip()
                if a == '1':
                    print('10分钟到家')
                    flag = False
                elif a == '2':
                    print('20分钟到家')
                    flag = False
                else:
                    print('没有这个选项,请重新选择回家方式')
                    continue
        elif choice.upper() == 'B':
            print('走小路回家')
            flag = False
        elif choice.upper() == 'C':
            print('绕道回家')
            while flag:
                c = input('请输入序号选择:
    1,游戏厅
    2,网吧').strip()
                if c == '1':
                    print('⼀个半⼩时到家,爸爸在家,拿棍等你')
                    break
                elif c == '2':
                    print('两个⼩时到家,妈妈已做好了战⽃准备')
                    break
                else:
                    print('没有这个选项,请重新选择回家方式')
                    continue
    else:
        print('请输入正确的选项')




    11、写代码:计算 1 - 2 + 3 ... + 99 中除了88以外所有数的总和?

    ①
    count = 1
    sum = 0
    while count <100:
        if count % 2 == 0:
            sum -= count
            if count == 88:
                sum += 88
        else:
            sum += count
        count += 1
    print(sum)
    
    
    ②
    count = 1
    sum = 0
    while count <100:
        if count % 2 == 0:
            if count == 88:
                count +=1  #如果不自加1,count一直是88,跳不出去循环
                continue
            sum -= count
        else:
            sum += count
        count += 1
    print(sum)


    12. (升级题)判断⼀句话是否是回⽂. 回⽂: 正着念和反着念是⼀样的. 例如, 上海
    ⾃来⽔来⾃海上(升级题)
    ①
    content = input('请输入>>>:')
    if content[::-1] == content:
        print('是回文')
    else:
        print('宝元是元宝')
    
    ②
    s = input('>>>')
    i = 0
    n = len(s) - 1
    while n > 0:
        if s[i] == s[n]:
            i += 1
            n -= 1
        else:
            print('这不是回文')
            break
    else:
        print('这就是回文')





    13. 输⼊⼀个字符串,要求判断在这个字符串中⼤写字⺟,⼩写字⺟,数字,
    其它字符共出现了多少次,并输出出来
    content = input('请输入>>>').strip()
    upper = 0
    lower = 0
    num = 0
    other = 0
    for i in content:
        if i.isupper():
            upper +=1
        elif i.islower():
            lower +=1
        elif i.isdigit():
            num +=1
        else:
            other += 1
    print("大写字母有{}个,小写字母有{}个,数字有{}个,其他有{}个".format(upper,lower,num,other))


    14、制作趣味模板程序需求:等待⽤户输⼊名字、地点、爱好,根据⽤户的名
    字和爱好进⾏任意现实 如:敬爱可亲的xxx,最喜欢在xxx地⽅⼲xxx
    name = input('请输入名字:')
    place = input('请输入地点:')
    hobby = input('请输入爱好:')
    print('敬爱可亲{},最喜欢在{}疯狂的对{}输出'.format(name,place,hobby))


    15. (升级题) 给出百家姓. 然后⽤户输⼊⼀个⼈的名字. 判断这个⼈是否是百家
    姓中的姓⽒(升级题)
    百家姓:
    first_names = """
    赵钱孙李,周吴郑王。
    冯陈褚卫,蒋沈韩杨。
    朱秦尤许,何吕施张。
    孔曹严华,⾦魏陶姜。
    戚谢邹喻,柏⽔窦章。
    云苏潘葛,奚范彭郎。
    鲁⻙昌⻢,苗凤花⽅。
    俞任袁柳,酆鲍史唐。
    费廉岑薛,雷贺倪汤。
    滕殷罗毕,郝邬安常。
    乐于时傅,⽪卞⻬康。
    伍余元⼘,顾孟平⻩。
    和穆萧尹,姚邵湛汪。
    祁⽑禹狄,⽶⻉明臧。
    计伏成戴,谈宋茅庞。
    熊纪舒屈,项祝董梁。
    杜阮蓝闵,席季麻强。
    贾路娄危,江童颜郭。
    梅盛林刁,钟徐邱骆。
    ⾼夏蔡⽥,樊胡凌霍。
    虞万⽀柯,昝管卢莫。
    经房裘缪,⼲解应宗。
    丁宣贲邓,郁单杭洪。
    包诸左⽯,崔吉钮龚。
    程嵇邢滑,裴陆荣翁。
    荀⽺於惠,甄曲家封。
    芮羿储靳,汲邴糜松。
    井段富巫,乌焦巴⼸。
    牧隗⼭⾕,⻋侯宓蓬。
    全郗班仰,秋仲伊宫。
    宁仇栾暴,⽢钭厉戎。
    祖武符刘,景詹束⻰。
    叶幸司韶,郜黎蓟薄。
    印宿⽩怀,蒲邰从鄂。
    索咸籍赖,卓蔺屠蒙。
    池乔阴鬱,胥能苍双。
    闻莘党翟,谭贡劳逄。
    姬申扶堵,冉宰郦雍。
    卻璩桑桂,濮⽜寿通。
    边扈燕冀,郏浦尚农。
    温别庄晏,柴瞿阎充。
    慕连茹习,宦艾⻥容。
    向古易慎,⼽廖庾终。
    暨居衡步,都耿满弘。
    匡国⽂寇,⼴禄阙东。
    欧⽎沃利,蔚越夔隆。
    师巩厍聂,晁勾敖融。
    冷訾⾟阚,那简饶空。
    曾毋沙乜,养鞠须丰。
    巢关蒯相,查后荆红。
    游竺权逯,盖益桓公。
    万俟司⻢,上官欧阳。
    夏侯诸葛,闻⼈东⽅。
    赫连皇甫,尉迟公⽺。
    澹台公冶,宗政濮阳。
    淳于单于,太叔申屠。
    公孙仲孙,轩辕令狐。
    钟离宇⽂,⻓孙慕容。
    鲜于闾丘,司徒司空。
    丌官司寇,仉督⼦⻋。
    颛孙端⽊,巫⻢公⻄。
    漆雕乐正,壤驷公良。
    拓跋夹⾕,宰⽗⾕梁。
    晋楚闫法,汝鄢涂钦。
    段⼲百⾥,东郭南⻔。
    呼延归海,⽺⾆微⽣。
    岳帅缑亢,况郈有琴。
    梁丘左丘,东⻔⻄⻔。
    商牟佘佴,伯赏南宫。
    墨哈谯笪,年爱阳佟。
    第五⾔福,百家姓终。
    """
    百家姓
    name=input("请输入一个名字:").strip()
    name1=name[0]
    if name1 in first_names:
        print("good")
    else:
        print("这个名字姓氏不在百家姓中!")




  • 相关阅读:
    js全局函数
    几个数拼接生成最大数(java实现)
    数独求解算法(回溯法和唯一解法)java实现
    32位机和64位机下面各类型sizeof的大小
    【经典算法】——KMP,深入讲解next数组的求解
    java 初始化及执行顺序
    CentOS7用yum安装、配置MariaDB 10
    centos7 删除mysql
    Linux下配置两个或多个Tomcat启动
    Linux平台上搭建apache+tomcat负载均衡集群[一台服务器多tomcat集群模式]
  • 原文地址:https://www.cnblogs.com/-li926/p/9469904.html
Copyright © 2011-2022 走看看