zoukankan      html  css  js  c++  java
  • Day2-python基础2

    本次学习内容

      1.for循环

      2.continue and break

      3.while循环

      4.运算符

      5.数据类型

        数字

        字符串

        列表

    1.for循环

    猜年龄的游戏完善下,只有三次机会

    for i in range(3)#循环3次

    for...else#如果for循环正常结束,就执行else下面的语句

    exit()#退出程序 

    hongpeng_age = 21
    for i in range(3):
        age = int(input("please guess age:"))#int 输入字符串转换成整型
        if age == hongpeng_age:
            print('get it')
            break
        elif age < hongpeng_age:
            print ('try bigger')
        else:
            print('try smaller')
    else:
        exit("too much times")
    print('welcome...')
    View Code

    2.continue and break

    continue:结束本次循环,继续下一次循环

    break:结束本层循环

    continue

    for i in range(10):
        for j in range(10):
            if j > 5:
                continue
            else:
                print (i,j)

    break

    for i in range(10):
        for j in range(10):
            if j > 5:
                break
            else:
                print (i,j)

    3.while循环

    while True死循环,一直执行到天荒地老
    count = 0
    while True:
        print("你是风儿我是沙,缠缠绵绵到天涯...",count)
        count +=1

    上面的3次猜年龄的游戏也能用while实现

    age = 21
    count = 0
    while count < 3:
        guess_age = input("age:")
        #判断输入是否是数字
        if guess_age.isdigit():
            guess_age = int(guess_age)
        else:
            continue
        if guess_age == age:
            print('get it')
            break
        elif guess_age > age:
            print("try small")
        else:
            print("try bigger")
        count += 1
    View Code

    4.运算符

    1、算数运算:

    • +   加
    • -         减
    • *   乘
    • /    除
    • %   取余
    • **   幂
    • //    取整除

    2、比较运算:

    • ==  等于
    • !=  不等于
    • >    大于
    • <    小于
    • >=  大于等于
    • <=  小于等于

    3、赋值运算:

    • =  赋值
    • +=  a+=b---------a=a+b
    • -=   a-=b----------a=a-b
    • *=  a*=b----------a=a*b
    • /=   a/=b----------a=a/b
    • %=   a%=b---------a=a%b
    • **=     a**=b--------a=a**b
    • //=  a//=b---------a=a//b

    4、位运算:

    • &    按位与
    • |     按位或
    • ^    按位异或,二进制相依时结果为1
    • ~    按位取反
    • <<  左移
    • >>  右移

    5、逻辑运算:

    6、成员运算:

    • in
    • not in

    7.身份运算

    • is    判断两个标识符是不是引用同一对象
    • is not

    >>> age = 1111111111111
    >>> age1 = age
    >>> age1 is age
    True

    #类似软链接

    >>> age = 111111111111
    >>> age1 = 111111111111
    >>> age1 is age
    False
    #重新在内存中创建

     

    5.数据类型

    数字

    • 整型int
    • 长整型long(python3中没有长整型,都是整型)
    • 布尔bool(True 和False1和0)
    • 浮点型float
    • 复数complex

    字符串

    定义:它是一个有序的字符的集合,用于存储和表示基本的文本信息,' '或'' ''或''' '''中间包含的内容称之为字符串
    msg = 'hello world'
    print(msg[4])#找字符串中索引是4
    print(msg.capitalize())#字符串首字母大写
    print(msg.center(20,'*'))#字符串居中显示,*补全
    print(msg.count('d',0,))#统计字符串中d出现的次数
    print(msg.endswith('l'))#是否以l结尾
    print(msg.find('p'))#字符串中找p的位置
    print(msg.index('l'))#字符串中找l的索引,只找第一个
    #find和index的区别,find如果没有找到,输出-1,index没有找到,报错
    #format函数,功能和%s一样
    print('{0} {1} {0}'.format('name','age'))
    print('{name}'.format(name = 'alex'))
    print('{} {}'.format('name','age','hobby'))
    
    msg1 = '  while  '
    msg2 = '11'
    print(msg1.isalnum())#至少一个字符,且都是字母或数字才返回True
    print(msg1.isalpha())#至少一个字符,且都是字母才返回True
    print(msg1.isdecimal())#10进制字符
    print(msg1.isdigit())#整型数字
    print(msg1.isidentifier())#判断单词中是否含关键字
    print(msg1.islower())#全为小写
    print(msg1.isupper())#全为大写
    print(msg1.isspace())#全为空格
    print(msg1.istitle())
    print(msg1.ljust(20,'*'))#左对齐
    print(msg1.rjust())#右对齐
    print(msg1.strip())#移除空白
    
    #字符串中字符替换
    msg = 'my name is abcd'
    table = str.maketrans('a','l')
    print(msg.translate(table))
    
    msg1 = 'abc'
    print(msg1.zfill(20))#右对齐
    print(msg1.rjust(20,'0'))
    View Code
    isdigit()
    True: Unicode数字,byte数字(单字节),全角数字(双字节),罗马数字
    False: 汉字数字
    Error: 无
    
    isdecimal()
    True: Unicode数字,,全角数字(双字节)
    False: 罗马数字,汉字数字
    Error: byte数字(单字节)
    
    isnumeric()
    True: Unicode数字,全角数字(双字节),罗马数字,汉字数字
    False: 无
    Error: byte数字(单字节)
    isdigit、isnumeric、isdecimal的区别 

    列表

    定义:[]内以逗号分隔,按照索引,存放各种数据类型,每个位置代表一个元素
    特性:
    1.可存放多个值
    2.可修改指定索引位置对应的值,可变
    3.按照从左到右的顺序定义列表元素,下标从0开始顺序访问,有序
    name = ['tom','jack','david','alex','alex','domin']
    #
    name.append('alice')
    print(name)
    name.insert(1,'stevn')
    print(name)
    #删除
    name.remove('tom')
    print(name)
    del name[0]
    print(name)
    name.pop(1)#不声明默认删除最后一个元素
    print(name)
    #
    name[2] = 'tomas'
    print(name)
    #
    print(name[-1])
    print(name[0::2])#步长为2
    print(name[-3:])
    print(name.index('jack'))#取元素下标
    name2 = ['dog','cat']
    name.extend(name2)#把name2列表加入name中
    name.sort()
    print(name)#ascii排序,python3中str和int不能排序,2中可以
    n3 = name.copy() n4 = name print(n3,id(name),id(n3)) print(n4,id(name),id(n4)) name.pop() print(n3,id(name),id(n3)) print(n4,id(name),id(n4)) #copy是在内存中重新存放一份数据,python2中有深浅copy一说,python3中都是深copy #n4就是类似linux中的软连接,和name在内存中存放数据的地址一样

    小练习1:购物车之初体验,先实现个小目标


    • 展示商品列表和价格
    • 用户输入薪水
    • 用户购物结束打印购买列表、余额

    列表

    enumerate()

    if...else

    while True

    buy_list = []
    dict_list = [
        ["iphone",5888],
        ["mac",12000],
        ["cloth",300]
    ]
    print("welcome".center(20,'*'))
    for index,item in enumerate(dict_list):
        print(index,item[0],item[1])
    while True:
        salary = input("salary:")
        if salary.isdigit():
            salary = int(salary)
            break
        else:
            continue
    while True:
        choose = input("pleae choose:")
        if choose.isdigit():
            choose = int(choose)
    
            if choose >= 0 and choose < len(dict_list):
                p = dict_list[choose]
                if salary < p[1]:
                    print("your balance is not enough!")
                else:
                    buy_list.append(p)
                    salary -= p[1]
                    print('you have buy 33[32;1m[%s]33[0m,your balance is 33[32;1m[%s]33[0m'%(p[0],salary))
        elif choose == 'quit':
            print('购买商品如下:'.center(50,'*'))
            for i in buy_list:
                print(i[0],i[1])
            print('your balance is %s'%salary)
            exit()
        else:
            continue
    View Code

     小练习2

    >>> str=''
    >>> print(str.isnumeric())
    True
    >>> print('www.example.com'.lstrip('cmowz.'))
    example.com
    >>> values = [1,2,3,4,5,6]
    >>> print(values[::2])
    [1, 3, 5]
    >>> print(1 and 2)
    2

     小练习3

    三级菜单(每一级都能退出和返回上一级)

    无敌版

    menu = {
        '北京':{
            '海淀':{
                '五道口':{
                    'soho':{},
                    '网易':{},
                    'google':{}
                },
                '中关村':{
                    '爱奇艺':{},
                    '汽车之家':{},
                    'youku':{},
                },
                '上地':{
                    '百度':{},
                },
            },
            '昌平':{
                '沙河':{
                    '老男孩':{},
                    '北航':{},
                },
                '天通苑':{},
                '回龙观':{},
            },
            '朝阳':{},
            '东城':{},
        },
        '上海':{
            '闵行':{
                "人民广场":{
                    '炸鸡店':{}
                }
            },
            '闸北':{
                '火车战':{
                    '携程':{}
                }
            },
            '浦东':{},
        },
        '山东':{},
    }
    current_level = menu#记录当前层
    last_level = []#记录当前层的前几层
    while True:
        for i in current_level:#遍历字典,打印当前层key
            print(i)
        choice = input('>>').strip()
        if len(choice) == 0:continue
        if choice == 'q':exit()
        if choice == 'b':
            if len(last_level) == 0:break#判断是否back到了首层
            current_level = last_level[-1]#如果输入b,当前层就改为上层
            last_level.pop()#并删除列表中最后一个值,也就是当前层的上层
        if choice not in current_level:continue#这行一定要写在if choice == 'b':的下面,否则输入b会一直continue
        last_level.append(current_level)#当前层改变前记录到列表中,back时能找到上一层
        current_level = current_level[choice]#根据用户输入改变当前层
  • 相关阅读:
    Java中的几种常用循环 for switch while dowhile
    HTML的各种基本标签
    2017年终总结
    HTML C# ajax结合ashx处理程序实现文件上传
    HTML div鼠标悬停控制子控件显示与隐藏
    HTML 使用CSS 如何去掉文本聚焦框
    HTML input 文本框如何添加提示信息
    CSS 如何通过top left 定位控制div在另一个div的位置
    CSS background 属性
    php支付接口开发-支付宝-开发前期准备
  • 原文地址:https://www.cnblogs.com/hongpeng0209/p/5968009.html
Copyright © 2011-2022 走看看