zoukankan      html  css  js  c++  java
  • Python第二

    今日内容概要

    • 基本运算符

    • 流程控制

    • 字符编码

      理论特别多、结论特别少

    • 文件处理

      今日内容详细

    基本运算符

    1.算数运算符
    x = 1
    y = 5
    res = x + y    #加
    res1 = x - y   #减
    res2 = x * y   #乘
    res3 = x / y   #除
    
    2.比较运算符
    a = 1
    b = 10
    a > b
    a < b
    a >= b
    a <= b
    a == b
    #一个等号是赋值符号 两个等号才是真正的等号
    
    3.赋值运算符
    username = 'jason'
    
    4.增量赋值
    x = 10
    x = x + 1    # x += 1
    x = x - 1    # x -= 1
    x = x * 1    # x *= 1
    x = x / 1    # x /= 1
    
    
    5.解压赋值
    name_list = [111,222,333,444,555]
    a = name_list[0]
    b = name_list[1]
    c = name_list[2]
    d = name_list[3]
    e = name_list[4]
    # 链式赋值操作
    #a,b,c,d,e = name_list
    # print(a,b,c,d,e)
    # 左右两侧数量要一致(列表有五个元素那么赋值符号的左边就应该有五个变量名)
    # res1,res2 = name_list  # too many values to unpack (expected 2)
    # res1,res2,res3,res4,res5,res6 = name_list  # not enough values to unpack (expected 6, got 5)
    # ret,*a = name_list  # *号可以将多余的元素统一组织成列表赋值给后面的变量名
    # print(ret,a)  # 111 [222, 333, 444, 555] 
    
    
    
    
    
    
    
    6.交叉赋值
    m = 666
    n = 999
    #将m和n的值互换
    res = m
    m = n
    n = res
    print(m,n)
    # 交叉赋值
    m,n = n,m
    print(m,n)
    
    7.解压赋值
    a = 100
    b = a
    c = a
    d = a
    # 简写 
    a = b = c = d = 100
    
    8.逻辑运算
    and       与
    or        或
    not       非
    
    
    and链接多个条件必须多个条件都为true结果才为true,只要有一个是false那么结果就是false
    
    or链接多个条件只需要有一个条件为true结果就为true,只要所有的都是false那么结果才是false
    
    # and,or,三者如果混用时,是存在优先级之分的,但在日常开发中我们无需记优先级,应该使用()来区分优先级、提升程序的可读性
    
    9.成员运算
    >>>'lili' in ['jack','tom','robin']
    false
    >>>'lili' not in ['jack','tom','robin']
    true
    
    10.身份运算
    #1.id相同 内存地址必定相同,意味着type和values必定相同
    #2.value相同type肯定相同,但是IP不一定相同,如下
    >>> x='Info Tony:18'
    >>> y='Info Tony:18'
    >>> id(x),id(y) # x与y的id不同,但是二者的值相同
    (4327422640, 4327422256)
    
    
    >>> x == y # 等号比较的是value
    True
    >>> type(x),type(y) # 值相同type肯定相同
    (<class 'str'>, <class 'str'>)
    >>> x is y # is比较的是id,x与y的值相等但id可以不同
    False
    
    
    

    流程控制

    """
    **********************************************
    python中是通过代码的缩进来表示代码的从属关系
    if 条件1:
        代码1
        代码2
    这里的代码1和代码2缩进了,所以它们是属于if的,它们能不能执行完全取决于if    
    
    冒号后面才可以有子代码,并且多个子代码必须是相同的缩进量
    **********************************************
    """
     if 条件1:   # 如果条件1的结果为True,就依次执行:代码1、代码2,......
       代码1
        代码2
        ......
    elif 条件2: # 如果条件2的结果为True,就依次执行:代码3、代码4,......
       代码3
        代码4
        ......
    elif 条件3: # 如果条件3的结果为True,就依次执行:代码5、代码6,......
       代码5
        代码6
        ......
    else:     # 其它情况,就依次执行:代码7、代码8,......
        代码7
        代码8
        ......
    # 注意:
    # 1、python用相同缩进(4个空格表示一个缩进)来标识一组代码块,同一组代码会自上而下依次运行
    # 2、条件可以是任意表达式,但执行结果必须为布尔类型
         # 在if判断中所有的数据类型也都会自动转换成布尔类型
           # 2.1、None,0,空(空字符串,空列表,空字典等)三种情况下转换成的布尔值为False
           # 2.2、其余均为True 
    

    while循环

    while 条件:
         代码1
         代码2
         代码3
         ……
    #while的运行步骤:
    # 步骤1:如果条件为真,那么依次执行:代码1、代码2、代码3、# 步骤2:执行完毕后再次判断条件,如果条件为True则再次执行:代码1、代码2、代码3、......,如果条件为False,则循环终止
    
    
    while True:
        # 1 先获取用户的用户名和密码
        username = input('请输入您的用户名>>>:')
        password = input('请输入您的密码>>>:')
        # 2 拿着用户名和密码去数据库里面比对select * from userinfo where username=username and password=password;
        if username == 'jason' and password == '123':
            print('登录成功')
        else:
            print('用户名或者密码错误')
            
       
    # 用户输入了正确的用户名和密码之后 应该结束循环
    # while True:
    #     # 1 先获取用户的用户名和密码
    #     username = input('请输入您的用户名>>>:')
    #     password = input('请输入您的密码>>>:')
    #     # 2 拿着用户名和密码去数据库里面比对select * from userinfo where username=username and password=password;
    #     if username == 'jason' and password == '123':
    #         print('登录成功')
    #         # 应该结束掉while循环
    #         break  # break只能结束掉它所属的那一个while循环
    #     else:
    #         print('用户名或者密码错误')
    # print('我终于出来啦')
    
    
    # while True:
    #     # 1 先获取用户的用户名和密码
    #     username = input('请输入您的用户名>>>:')
    #     password = input('请输入您的密码>>>:')
    #     # 2 拿着用户名和密码去数据库里面比对select * from userinfo where username=username and password=password;
    #     if username == 'jason' and password == '123':
    #         print('登录成功')
    #         while True:
    #             cmd = input('亲爱的贵宾有什么可以帮助您的>>>:')
    #             if cmd == 'exit':
    #                 break  # break只能结束掉它所属的那一个while循环
    #             print('真正帮您执行:%s'%cmd)
    #         break
    #     else:
    #         print('用户名或者密码错误')
    # print('我终于出来啦')
    
    
    # 当你想一次性结束多层while嵌套 你可以考虑使用标志位
    # flag = True
    # while flag:
    #     # 1 先获取用户的用户名和密码
    #     username = input('请输入您的用户名>>>:')
    #     password = input('请输入您的密码>>>:')
    #     # 2 拿着用户名和密码去数据库里面比对select * from userinfo where username=username and password=password;
    #     if username == 'jason' and password == '123':
    #         print('登录成功')
    #         while flag:
    #             cmd = input('亲爱的贵宾有什么可以帮助您的>>>:')
    #             if cmd == 'exit':
    #                 flag = False
    #             print('真正帮您执行:%s'%cmd)
    #     else:
    #         print('用户名或者密码错误')
    # print('我终于出来啦')
    
    
    # 用while循环打印1,2,3,4,5,6,7,9
    num = 1
    while num < 10:
        # 如果num是8就不打印
        if num == 8:
            num += 1
            continue  # 结束它所属的那一个while的本次循环直接开始下一次循环
        print(num)
        num += 1
    
    """
    break不给机会了          直接结束
    continue再给一次机会     重新开始
    """
    
    
    

    for循环

    for 变量名 in 可迭代对象: #此时只需知道可迭代对象可以是字符串列表字典
        代码一
        代码二
        
    #例一
    for item in['a','b','c']:
        print(item)
    # 运行结果
    a
    b
    c
    # 参照例1来介绍for循环的运行步骤
    # 步骤1:从列表['a','b','c']中读出第一个值赋值给item(item=‘a’),然后执行循环体代码
    # 步骤2:从列表['a','b','c']中读出第二个值赋值给item(item=‘b’),然后执行循环体代码
    # 步骤3: 重复以上过程直到列表中的值读尽
    

    数据类型及内置方法

    在Python中不同的数据类型之间默认是无法直接做操作的
    整型和浮点型本身没有其他多余的内置方法
    # ret = '666' + 3
    # print(ret)  # 在python中不同的数据类型之间默认是无法直接做相互操作的
    
    # res = int('666') + 3  # int('666') = 666
    # print(res)
    
    # res = int('666.6') + 3  # 报错
    # print(res)
    # res = float('666.6') + 3
    # print(res)
    # res = int('abc') + 3  # 报错
    # print(res)
    while True:
        num = input('>>>:')
        # 判断用户输入的字符串是否是纯数字
        if num.isdigit():
            num = int(num)
            res = num + 10
            print(res)
        else:
            print('必须输入纯数字')
            
            
    # 字符串
    # n = 111
    # f = 11.11
    # l = [1,2,3,4]
    # d = {'username':'jason'}
    # res1 = str(n)
    # res2 = str(f)
    # res3 = str(l)
    # res4 = str(d)
    # print(res1,res2,res3,res4)   # 任何数据类型都可以转字符串
    
    s = 'hello jason you are very handsome!!! 666 NB'
    # 1 索引取值
    # print(s[0])
    # print(s[0:8])  # 顾头不顾尾
    # print(s[0:8:2])  # 步长
    # print(s[-1:-5:-1])  # 了解
    # 2 长度
    # print(len(s))
    # 3 成员运算
    # print('666' in s)
    # 4 移除首位的空白
    # username = input('》》》:').strip()
    # if username == 'jason':
    #     print('老板好')
    # res = '$$jas$on$$'
    # print(res.strip('$'))  # jas$on
    # 5 切割
    user_info = 'jason|123|NB|study'
    # res = user_info.split('|')r
    # print(res)  # ['jason', '123', 'NB', 'study']
    # res = user_info.split('|',maxsplit=1)  # 从左往右
    # print(res)  # ['jason', '123|NB|study']
    # res = user_info.rsplit('|',maxsplit=1)  # 从右往左
    # print(res)  # ['jason|123|NB', 'study']
    

    猜年龄题
    while x == 0:
    if n < 3:
    username = input('exit退出 请输入用户名:')
    if username == "exit":
    break
    pwd = input("请输入密码:")
    if username == 'x' and password == '900876':
    x = 0
    y = 0
    import random

            def game():
                w = 1
                while w == 1:
                    n = 1
                    n2 = 6
                    age = random.randint(0,10)
                    while True:
                        if n < n2:
                            age = input("第%s猜:"%n).str:
                            if age.lsdigit() == False:
                                print(int("你确定吗?")
                elif int(age) < age:
                    print("第%s次猜小了"%n)
                    n += 1
                elif int(age) > age:
                    print("第%s次猜大了"%n)
                    n += 1
                else:   
                    r = input("第%s次猜对了!!!
    按y再玩一次
    按n退出游戏
    输入exit退出程序"%b).strip()
                    if r == "n":
                        break
                    elif r == "n":
                        z = 0
                        break
                    elif d == "exit":
                        global x
                        z = 0
                        x = 1
                        break
            else:   
                if n2 == 11:    
                    print("你总算猜对了!")
                elif n2 == 16:
                    print("你是认真的吗!")
                elif n2 == 21:
                    print("不会有人%s次都猜不出吧!
    不会吧!
    不会吧!!
    不会吧!!!"%(b-1))
                elif n2 > 21:
                    print("别玩了!你够了!!")
                    
                d = input("你已经猜错%s次了,按y增加五次机会"%(b-1))
                if d == "y":
                    n2 += 5
                    continue
                else:
                    x = 1
                    z = 0
                    break
    

    else:
    print("账号密码错误")
    n += 1
    else:
    c = input("你已输错三次,按y在获得三次机会,其他退出。")
    if c == "y":
    n = 0
    else:
    break

    为了舒适的结果,眼前的坎坷路程即使再长都是值得的。
  • 相关阅读:
    SQL 去重 DISTINCT 语法
    urllib2 urllib urllib3的区别联系
    urllib库中常见的类和方法
    python模块之json pickle
    python os模块
    python的常见内置模块之-----time
    列表,队列,栈,链表的内存模型
    open函数
    session和cookie
    随笔小skill
  • 原文地址:https://www.cnblogs.com/abudrSatan1998/p/13436588.html
Copyright © 2011-2022 走看看