zoukankan      html  css  js  c++  java
  • 切片,索引,基本数据类型

           is 和 == 区别

        id()函数

        == 判断两边的值

        is 判断内存地址

    1. Python是一门解释型. 弱类型语言
    2. print("内容", "内容", end=" ") 打印语句
    3. 变量: 程序运行过程中产生的中间值. 存储在内存中.供后面的程序调用
    4. 变量的数据类型:
    int, 整数
    str, 字符串
    bool, True,False
    5. 命名规则:
    1. 由数字,字母,下划线组成
    2. 不能是纯数字或者数字开头
    3. 不能是关键字
    4. 不能太长
    5. 要有意义
    6. 不要用中文
    7. 区分大小写
    8. 推荐使用驼峰和下划线命名
    6. input() 用户输入
    7. if 判断
    if 条件:
    代码块
    else:
    代码块

    if 条件:
    代码块
    elif 条件2:
    代码块
    ..
    else:
    二. while循环
    while 条件:
    循环体
    else:
    代码块
    流程:
    判断条件是否为真. 如果真.执行循环体. 再次判断条件是否真. ....直到条件为假. 执行else. 退出循环

    break 直接打断循环.
    continue 停止当前本次循环. 继续执行下一次循环

    格式化输出:
    %s 字符串
    %d 数字

    运算符:
    逻辑运算
    1. and. 两端同时为真. 结果才是真.
    2. or 或者. 两端有一个是真. 结果就是真
    3. not 取反.

    () => not => and => or
    x or y
    如果x非零, x, 否则 y

    编码:
    1. ASCII. 8bit, 1byte
    2. GBK, 16bit, 2byte
    3. unicode, 32bit,4byte
    4. UTF-8, 英文:8bit, 1byte, 欧洲: 16bit, 2byte, 中文: 24bit, 3byte

    3. 基本数据类型
    1. int 数字. bit_length() 二进制长度
    3. bool 空:False, 非空:True

    # by luffycity.com
    
    # a = 10
    # print(type(a))
    # s = str(a)
    # print(type(s))
    #
    # int(s)
    # 想把某数据转换成xxx数据类型.   xxx(数据)
    
    # a = 0 # False
    # print(bool(a))
    
    # s = "" # 空字符串是false
    # print(bool(s)) # True
    
    # 空的东西是False. 非空的东西是True
    # lst = [1] # 空列表是False
    # print(bool(lst))
    
    # dic = {'jj':'林俊杰'} # 空字典是False
    # print(bool(dic))
    
    # a = None # 表示空. 真空.
    # print(bool(a))
    
    # 所有的空都是False. 所有的非空都是True
    # 想把某数据装换成xxx数据类型. xxx(数据)
    # str => int
    # int(s)
    # int => str
    # str(i)
    # lst => tuple
    # tuple(lst)
    # tuple => list
    # list(tu)
    # while 1: # 死循环
    #     print("alex是个人才")
    
    
    lst = [1,2,3] # 列表
    tu = tuple(lst)
    print(type(tu))
    View Code


    2. str, 字符串不可变
    索引切片: 由0开始
    [起始位置: 结束位置: 步长]
    操作:
    1. upper() 变成大写
    2. strip() 去掉空格(两端)
    3. replace() 替换
    4. split() 切割
    5. startswith() 以xxx开头(判断)
    6. find() 找xxx字符串在原字符串中出现的索引位置. 找不到返回-1
    7. count() 数数
    8. format() 格式化输出
    9. len() 求长度
    4. 列表:
    由[]表示
    有索引和切片
    常用操作:
    增加:append(), insert(), extend()
    删除:pop() remove() del, clear()
    修改:索引切片修改
    查询:
    for 变量 in 可迭代对象:
    循环体
    else:

    # by luffycity.com
    # s = "伊丽莎白鼠"
    # print(s[0])
    # print(s[1])
    # print(s[2])
    # print(s[3])
    # print(s[4])
    # # print(s[5]) # 索引不能超过边界
    #
    # print(s[-1]) # 倒数第一个
    # print(s[-2])
    # print(s[-3])
    # print(s[-4])
    # print(s[-5])
    
    # s = "伊丽莎白鼠的溜肥肠还有挖掘机"
    
    # 切片 [起始位置: 结束位置] 1.顾头不顾尾, 2.从左往右切
    # print(s[1:3])   # 从1切到3. 但是取不到3  [1,3)
    # print(s[1:]) # 从1开始切. 切到结尾
    # print(s[:2]) # 从头切到2
    # print(s[:]) # 从头到尾
    # print(s[-3:-1]) # 只能从左往右切
    
    # 给出第三个参数来控制方向,第三个参数叫步长
    # print(s[-1:-3:-1]) # - 表示反方向. 从右往左切
    
    # print(s[4:10:3])
    # print(s[-3:-9:-2])
    View Code

    操作:
    sort(reverse=True) 排序
    reverse() 翻转
    len() 长度
    count() 数数

    元组:
    tuple, 只读列表, 由()组成. 不可变的
    索引和切片. for循环


    解构, 解包
    a, b = 1, 2

    range(10) 0-9
    range(5, 10) 5-9
    range(5,10,3) 5,8

    5. dict 字典
    由{}表示. 存储key:value 键值对. 根据key来计算hash值.找到对应的内存地址.
    key必须是可hash的. 不可变的. int, str, 元组, bool

    操作:
    增加: dict[key] = value
    setdefault(key, value)
    删除: pop(key), del , popitems(), clear()
    修改: dict[key] = value
    查询:dict[key], get(key, 默认值),
    setdefault() 先执行新增那个流程. 然后.获取到key对应的值

    常规操作:
    keys() 获取所有的key.返回的像个列表
    values() 获取所有value
    items() 获取所有的key,value.装成元组. 返回列表[(key,value), (key,value)]

    通过items()获取的是k,v
    for k,v in dict.items():

    直接循环遍历. 拿到的是key
    for k in dict:

    # s = "al1ex is a gay and Wu傻sir is A gay too"
    
    # s1 = s.capitalize() # 把首字母变成大写
    # print(s1)
    
    # s2 = s.lower() # 小写
    # print(s2)
    
    # s3 = s.upper()  # 大写
    # print(s3)
    
    # s4 = s.swapcase() # 大小写互换
    # print(s4)
    
    # s2 = "БBß"  # 俄美德
    # print(s2)
    # print(s2.lower())
    # print(s2.casefold())
    
    # s5 = s.title() # 把每个单词的首字母大写
    # print(s5)
    
    # s = "sb"
    # s1 = s.center(10, "*") # 强行使用*在原字符串左右两端进行拼接. 拼接成10个单位
    # print(s1)
    
    # s = "    alex    is    a   gay   "
    # s1 = s.strip() # 默认去掉空格. 空白	 
    
    # print(s1)
    
    # username = input("请输入用户名:").strip()
    # password = input("请输入密码:").strip()
    # if username == 'alex' and password =="123":
    #     print("成功")
    # else:
    #     print("失败")
    
    # s = "sb alex wusir sb sb taibai taibai sb"
    # print(s.strip("sb")) # 可以指定要去掉的内容
    
    # s = "泰坦尼克号, 西虹市首富, 小猪佩奇, 冒险王"
    # s1 = s.replace("冒险王", "西西里的美丽传说")
    # s2 = s.replace("佩奇", "wusir")
    # print(s2)
    #
    # s = "alex_wusir_taibai_ritian"
    # s1 = s.replace("_","")
    # print(s1)
    
    # s8 = "sylar_alex_taibai_wusir_eggon"
    # # s9 = s8.replace("i", "sb", 2) # 换两次
    # # print(s9)
    #
    # lst = s8.split("taibai") # 切完的结果是一个列表. 列表中装的是字符串. 用什么切. 就会损失掉什么
    # print(lst)
    
    # s = """我家大门常打开
    # 开放怀抱等你
    # 后面是什么歌词
    # 我忘了"""
    # lst = s.split("
    ")
    # print(lst)
    
    # s = "我今天下午要去吃饭饭"
    # lst = s.split("我今天下午要去吃饭饭哈哈哈") # 没切
    # print(lst)
    
    # s = "我叫%s, 我今年%s了, 我喜欢%s" % ("周杰伦", "40", "昆凌")
    # print(s)
    
    # s = "我叫{}, 我今年{}了, 我喜欢{}".format("周杰伦", "40", "昆凌")
    # print(s)
    
    # s = "我叫{0}, 我今年{1}了, 我喜欢{2}".format("周杰伦", "40", "昆凌")
    # print(s)
    
    # s = "我叫{name}, 我今年{age}了, 我喜欢{hobby}".format(hobby="周杰伦", age="40", name="昆凌")
    # print(s)
    
    # s = "alex is a gay"
    # print(s.startswith("tory")) # 以xxx开头
    # print(s.endswith("girl")) # 以xxx结尾
    
    # s = "I have a dream. I want to kill you!"
    # 都可以进行索引范围
    # print(s.count("dream")) # 计算a在字符串中出现的次数
    # print(s.find("a")) # 查找xxx在字符串中出现的位置. 只找第一次出现的位置, 没有就返回-1
    # print(s.index("z")) # 当字符串不存在的时候. 报错
    
    
    # s = "abcdefg1@"
    # print(s.isdigit()) # %d
    # print(s.isalpha()) # 字母
    # print(s.isalnum()) # 是否由数字和字母组成
    
    # s = "壹仟贰佰五十六萬拾"
    # print(s.isnumeric())
    
    # 字符串长度, python的内置函数len(), int(), bool(), str(), type()
    # s = "娃哈哈可口可乐"
    # print(len(s)) # 字符串中的字符的个数
    
    
    # s = "王小利刘能赵四"
    # # # 对字符串进行遍历.
    # n = 0
    # while n < len(s):
    #     print(s[n])
    #     n = n + 1
    #
    # # 迭代
    # for c in s: # charactor
    #     print(c)
    View Code

    -----------------------------------------------------------------------------------------------------------------------------华     丽     丽     的     分     割     线---------------------------------------------------------------------------------------------------------------------------------------

    作业讲解

    1.有变量name = "aleX leNb" 完成如下操作:
    # name = "aleX leNb"
    # 1)移除 name 变量对应的值两边的空格,并输出处理结果
    # print(name.strip())
    # 2)移除name变量左边的"al"并输出处理结果
    # print(name.lstrip("al"))
    # 3)移除name变量右面的"Nb",并输出处理理结果
    # print(name.rstrip("Nb"))
    # 4)移除name变量开头的a"与最后的"b",并输出处理结果
    # print((name.lstrip('a')).rstrip('b'))
    # 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.title())
    # 14)判断name变量对应的值字母"l"出现几次,并输出结果
    # print(name.count('l'))
    # 15)如果判断name变量对应的值前四位"l"出现几次,并输出结果
    # print(name.count('l'))
    # 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[0:2])
    # 21)请输出 name 变量对应的值的后 2 个字符?
    # print(name[-2:])
    # 22)请输出 name 变量对应的值中 "e" 所在索引位置?
    # print(name.find('e'))
    2.有字符串s = "123a4b5c"
    # 1)通过对s切片形成新的字符串s1,s1 = "123"
    # s1 = s[0: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[-1:]
    # print(s5)
    # 6)通过对s切片形成字符串s6,s6 = "ba2"
    # s6 = s[5:0:-2]
    # print(s6)
    3.使用while和for循环分别打印字符串s="asdfer"中每个元素。
    s = "asdfer"
    count = 0
    while count < len(s):
        print(s[count])
        count += 1
    for 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("走吧")
    7,实现一个整数加法计算器(两个数相加):
    如:content = input("请输⼊入内容:") 用户输入:5+9或5+ 9或5 + 9,然后进
    行分割再进⾏计算。
    content = input("请输⼊入内容:")
    s = content.split("+") 
    sum = 0     
    for i in s:    
        i = int(i)  
        sum += i   
    print(sum)
    8,升级题:实现一个整数加法计算器(多个数相加):
    如:content = input("请输入内容:") 用户输入:5+9+6 +12+ 13,然后进行
    分割再进行计算。
    content = input("请输⼊入内容:")
    s = content.split("+")
    sum = 0
    for i in s:   
        i = int(i)
        sum += i
    print(sum)
     9,计算用户输入的内容中有几个整数(以个位数为单位)。
    如:content = input("请输⼊入内容:") # 如fhdal234slfh98769fjdla
    say = input("请输入一组字符串:")
    num = 0
    for i in say:
        if i.isdigit() == True:
            num += 1
    print("一共有%s个整数" % (num))
    10、写代码,完成下列需求:
    用户可持续输⼊入(用while循环),用户使用的情况:输入A,则显示走大路回家,然后在让用户进一步选择:
    是选择公交车,还是步行?
    选择公交车,显示10分钟到家,并退出整个程序。
    选择步⾏行行,显示20分钟到家,并退出整个程序。
    输入B,则显示走小路回家,并退出整个程序。
    输入C,则显示绕道回家,然后在让用户进⼀一步选择:
    是选择游戏厅玩会,还是网吧?
    选择游戏厅,则显示 ‘一个半小时到家,爸爸在家,拿棍等你。’并让其
    重新输入A,B,C选项。
    选择网吧,则显示‘两个小时到家,妈妈已做好了了战斗准备。并让其重
    新输入A,B,C选项。
    while True:
        la = input("请输入ABC选择回家的方式(a:走大路回家 b:走小路回家 c:绕道回家):")
        if la == 'a':
            print("走大路回家")
            la1 = input("选择公交车,还是步行?")
            if la1 == "公交车":
                print('十分钟到家')
                break
            else:
                print('二十分钟到家')
                break
        elif la == 'B':
            print("走小路回家")
            break
        else:
            print("绕道回家")
            la2 = input("游戏厅还是网吧")
            if la2 =='游戏厅':
                print("一个半小时到家,爸爸在家,拿棍等你。")
                continue
            else:                   
                print("两个小时到家,妈妈已做好了战斗准备。")
                continue
    11、写代码:计算 1 - 2 + 3 ... + 99 中除了了88以外所有数的总和?
    sum = 0
    count = 1
    while count < 100:
        if count == 88:
            count = count + 1
            continue
        elif count % 2 == 0:
            sum = sum - count
        else:
            sum = sum + count
        count = count + 1
    print(sum)
    12. (升级题)判断一句话是否是回文. 回文: 正着念和反着念是一样的. 例如, 上海
    自来水来自海上(升级题)
    qiu = input("请输入一句话:")
    if qiu[::-1] == qiu:
        print("是回文")
    else:
        print("不是回文")
    13. 输入一个字符串,要求判断在这个字符串中大写字母,小写字母,数字,
    其它字符共出现了了多少次,并输出出来
    say = input("请输入一组字符串:")
    big = 0
    smrt = 0
    num = 0
    other = 0
    for i in say:
        if i.isdigit() == True:
            num += 1
        elif i.isupper() == True:
            big += 1
        elif i.islower() == True:
            smrt += 1
        else:
            other += 1
    print("以下字符串中有大写字母%s个,小写字母%s个,数字%s个,其他字符%s个" % (big , smrt, num, other))
    14、制作趣味模板程序需求:等待用户输入名字、地点、爱好,根据用户的名
    字和爱好进行任意现实 如:敬爱可亲的xxx,最喜欢在xxx地方干xxx
    name = input("请输入你的名字:")
    place = input("请输入地点:")
    hobby = input("请输入你的爱好:")
    print("敬爱可亲的%s,最喜欢在%s地方干%s" % (name, place, hobby))
    15. (升级题) 给出百家姓. 然后用户输入一个人的名字. 判断这个人是否是百家
    姓中的姓氏(升级题)
    first_names = """
    赵钱孙李,周吴郑王。
    冯陈褚卫,蒋沈韩杨。
    朱秦尤许,何吕施张。
    孔曹严华,金魏陶姜。
    戚谢邹喻,柏水窦章。
    云苏潘葛,奚范彭郎。
    鲁韦昌马,苗凤花方。
    俞任袁柳,酆鲍史唐。
    费廉岑薛,雷贺倪汤。
    滕殷罗毕,郝邬安常。
    乐于时傅,皮卞齐康。
    伍余元卜,顾孟平黄。
    和穆萧尹,姚邵湛汪。
    祁毛禹狄,米贝明臧。
    计伏成戴,谈宋茅庞。
    熊纪舒屈,项祝董梁。
    杜阮蓝闵,席季麻强。
    贾路娄危,江童颜郭。
    梅盛林刁,钟徐邱骆。
    高夏蔡田,樊胡凌霍。
    虞万支柯,昝管卢莫。
    经房裘缪,干解应宗。
    丁宣贲邓,郁单杭洪。
    包诸左石,崔吉钮龚。
    程嵇邢滑,裴陆荣翁。
    荀羊於惠,甄曲家封。
    芮羿储靳,汲邴糜松。
    井段富巫,乌焦巴弓。
    牧隗山谷,车侯宓蓬。
    全郗班仰,秋仲伊宫。
    宁仇栾暴,甘钭厉戎。
    祖武符刘,景詹束龙。
    叶幸司韶,郜黎蓟薄。
    印宿白怀,蒲邰从鄂。
    索咸籍赖,卓蔺屠蒙。
    池乔阴鬱,胥能苍双。
    闻莘党翟,谭贡劳逄。
    姬申扶堵,冉宰郦雍。
    卻璩桑桂,濮牛寿通。
    边扈燕冀,郏浦尚农。
    温别庄晏,柴瞿阎充。
    慕连茹习,宦艾鱼容。
    向古易慎,戈廖庾终。
    暨居衡步,都耿满弘。
    匡国文寇,广禄阙东。
    欧殳沃利,蔚越夔隆。
    师巩厍聂,晁勾敖融。
    冷訾辛阚,那简饶空。
    曾毋沙乜,养鞠须丰。
    巢关蒯相,查后荆红。
    游竺权逯,盖益桓公。
    万俟司马,上官欧阳。
    夏侯诸葛,闻人东方。
    赫连皇甫,尉迟公羊。
    澹台公冶,宗政濮阳。
    淳于单于,太叔申屠。
    公孙仲孙,轩辕令狐。
    钟离宇文,长孙慕容。
    鲜于闾丘,司徒司空。
    丌官司寇,仉督子车。
    颛孙端木,巫马公西。
    漆雕乐正,壤驷公良。
    拓跋夹谷,宰父谷梁。
    晋楚闫法,汝鄢涂钦。
    段干百里,东郭南门。
    呼延归海,羊舌微生。
    岳帅缑亢,况郈有琴。
    梁丘左丘,东门西门。
    商牟佘佴,伯赏南宫。
    墨哈谯笪,年爱阳佟。
    第五言福,百家姓终
    """
    '''
    i = input('请输入你的名字(只适用于单字姓氏):')
    s = i[0]
    result = first_names.find(s)>=0
    if result == True:
        print("存在于百家姓当中")
    else:
        print("不存在于百家姓当中")
    View Code


  • 相关阅读:
    引入background和background-size不显示图片
    vue,新手上路,基础,常见问题
    Java设置环境变量
    JS判断是否是手机登录及类型
    Mongodb查询语句与Sql语句对比
    IIS7下使用urlrewriter.dll配置
    反射获取属性
    数据库Convert关于时间取值
    JS实现嵌套Iframe页面F11全屏效果
    针对上次表格编辑的打印问题及解决方案
  • 原文地址:https://www.cnblogs.com/songhuasheng/p/9284726.html
Copyright © 2011-2022 走看看