Python全栈(第一部分)day3

昨日内容回顾

  1. 格式化输出
    %s %d
    %%

  2. 编码

    • ascii: 只能显示英文,特殊字符,数字
    • 万国码unicode: 最开始16位,中文不够,用32位,占用4个字节
    • 升级: utf-8 utf-16 utf-32
      utf-8: 最少用一个字节,8位表示一个英文;欧洲16位,两个字节;亚洲24位,三个字节
    • gbk: 中国人发明的,只能用于中文和ascii码中的文字

作业讲解

  1. 判断逻辑语句的True, False

     print(1>1 or 3<4 or 4<5 and 2>1 and 9>8 or 7<6 ) #True
     print(not 2>1 and 3<4 or 4>5 and 2>1 and 9>8 or 7<6) #False
     print(1>2 and 3<4 or 4>5 and 2>1 or 9<8 and 4>6 or 3<2) #False
  2. 求出下列逻辑语句的值

     print(8 or 3 and 4 or 2 and 0 or 9 and 7) #8
     print(0 or 2 and 3 and 4 or 6 and 0 or 3) #4
     print(5 and 9 or 10 and 2 or 3 and 5 or 4 or 5) #9
  3. 下列结果是什么

     print(6 or 2>1)# 6
     print(3 or 2>1) # 3
     print(0 or 5<4) # False
     print(5<4 or 3) # 3
     print(2<1 or 6) # 6
     print(3 and 2>1) # True
     print(0 and 3>1) # 0
     print(2>1 and 3) # 3
     print(3>1 and 0) # 0
     print(3>1 and 2 or 2<3 and 3 and 4 or 3>2) #2
  4. 简述变量命名规范
    • 由数字,字母,下划线组成
    • 不能以数字开头
    • 不能使用python中的关键字
    • 不要使用中文
    • 常量名要大写
  5. name = input(">>>") name变量是什么数据类型
    str类型
  6. if条件语句的基本结构
  7. while循环语句基本结构
  8. 写代码:计算1-2+3...+99中除了88以外的所有数的总和

     #第一种
     count = 0
     sum = 0
     while count<99:
         count += 1
         if count==88:
             continue
         if count%2 == 0:
             sum -= count
         else:
             sum += count
     print(sum)
    
     #第二种
     count = 0
     sum = 0
     flag = -1
     while count<99:
         count += 1
         if count==88:
             continue
         else:
             flag = -flag
             sum += count*flag
     print(sum)
  9. 用户登陆(三次输错机会)且每次输错误时显示剩余错误次数

     count = 1
     while count<=3:
         name = input('请输入用户名:')
         passwd = input('请输入密码:')
         if name == 'xkzhai' and passwd == '1234':
             print('登录成功')
             break
         else:
             print('用户名或密码错误,还有' + str(3-count) + '次机会')
         count += 1
    
     username = "xkzhai"
     password = "1234"
     i = 3
     while i > 0:
         name = input("请输入你的账号:")
         i -= 1
         if name == username:
             passwd = input("请输入你的密码:")
             if passwd == password:
                 print("验证成功.正在登陆......")
                 print('''恭喜你登陆成功!
                 欢迎用户进入
                 用户名 :%s
                 密码   :%s
                 '''%(name,passwd))
                 break
             else:
                 print("密码错误,请重新输入")
                 print("你还有" + str(i) + "次机会")
                 if i == 0:
                     print("你的机会已经没了!")
                     answer = input('再试试?Y or N')
                     if answer == 'Y':
                         i = 3
         else:
             print("请输入正确的用户名!")
             print("你还有" + str(i) + "次机会")
             if i == 0:
                 print("你的机会已经没了!")
                 answer = input('再试试?Y or N')
                 if answer == 'Y':
                     i = 3

数据类型

  1. int: 用于计算

  2. bool: True,False,用户判断
  3. str: 存储少量数据,进行操作
  4. list: 存储大量数据,[1,2,3,'xkzhai','1234',[2,3,4]]
  5. 元组: 只读,(1,2,3,'第三')
  6. dict: 字典,键值对,{'name' : 'xkzhai', 'age' : 16}
  7. 集合: {1,2,3,'abc'}

int

    i = 1
    print(i.bit_length())

    '''
                    bit_length
    1    0000 0001      1
    2    0000 0010      2
    3    0000 0011      2
    '''

bool

    #bool True False

    # int ----> str
    i = 1
    s = str(i)

    # str ----> int
    s = '234'
    i = int(s)

    # int ----> bool, 只要是0就是False, 非零就是True
    i = -1
    b = bool(i)
    print(b)

    # bool ----> int, True ---> 1, False ---> 0
    '''
    while True:
        pass

    #效率高
    while 1:
        pass
    '''
    # str ----> bool, 非空字符串都是True
    s = ''
    print(bool(s))

    s = '0'
    print(bool(s))

str

  1. 字符串索引与切片

     s = 'ABCDEFGH'
     print(s[0]) # A
     print(s) # ABCDEFGH
    
     #切片:顾头不顾尾
     print(s[0:3]) # ABC
     print(s[-1]) # H
     print(s[0:]) # ABCDEFGH
     print(s[0:-1]) # ABCDEFG
     print(s[0:0]) # 空
     print(s[:]) #  ABCDEFGH
    
     #s[首:尾:步长]
     print(s[0:6:2]) # ACE
     print(s[4:0:-1]) # EDCB
     print(s[4::-1]) # EDCBA
     print(s[4::-2]) # ECA
     print(s[-1::-1]) # HGFEDCBA
     print(s[::-1]) # HGFEDCBA
  2. 字符串操作

     s = 'abcdEfg'
     print(s.capitalize()) #首字母大写,Abcdefg
     print(s.upper()) #全大写,ABCDEFG
     print(s.lower()) #全小写,abcdefg
    
     #验证码不区分大小写
     str = 'acEQ'
     str0 = input('请输入验证码,不区分大小写: ')
     if str.upper() == str0.upper():
         print('成功')
     else:
         print('验证码输入错误')
    
     #大小写翻转
     print('abCD'.swapcase()) # ABcd
    
     #每个隔开(特殊字符或数字)的单词首字母大写
     str = 'alex_tom*john'
     print(str.title()) # Alex_Tom*John
    
     #居中,字符填充
     s = 'alexTOM'
     print(s.center(20,"*")) # *****alexTom*****
    
     # 公共方法
     s = 'alex找Tom'
     print(len(s)) # 8
    
     #判断以什么开头
     s = 'alexTOM'
     print(s.startswith('ale')) # True
     print(s.startswith('exT',2,5)) # True
     print(s.startswith('exTOM',2,5)) # False
     #find查找元素,返回最小下标,int型,找不到则返回-1
     s = 'alexMTOM'
     print(s.find('MT')) # 4
    
     #index查找元素,找不到报错
     print(s.index('F')) # 报错
    
     #strip默认删除前后空格
     s = ' alexMTOM '
     print(s) #  alexMTOM
     print(s.strip()) # alexMTOM
    
     #rstrip, lstrip
     s = '* a*lexMTOM%'
     print(s.rstrip(' *%')) # * a*alexMTOM
    
     s = 'alexxk zhai'
     print(s.count('xx')) # 1
    
     #split  str ---> list
     s = ';alexxk;zhai;tom'
     print(s.split()) # [';alexxk;zhai;tom']
     print(s.split(';')) # ['','alexxk','zhai','tom']
     print(s.split('a')) # [';','lexkk;zh','i;tom']
  3. format,格式化,三种写法

     s = '我叫{},今年{},爱好{},再说一下我叫{}'.format('xkzhai',26,'iter','xkzhai')
     print(s)
    
     name = input('请输入名字:')
     s = '我叫{0},今年{1},爱好{2},再说一下我叫{0}'.format(name,26,'iter')
     print(s)
    
     name = input('请输入名字:')
     s = '我叫{name},今年{age},爱好{hobby},再说一下我叫{name}'.format(age=26,name=name,hobby='iter')
     print(s)
  4. replace

     s = '线性系统理线性论代数基础'
     print(s.replace('线性','非线性')) # 非线性系统理非线性论代数基础
     print(s.replace('线性','非线性',1)) # 非线性系统理线性论代数基础
  5. for循环,类似于java中的增强for循环

     s = '123abc'
     for i in s:
         print(i)
     # 1 2 3 a b c
    
     s = 'xs鲁棒控制理论sx'
     if 'xs' in s:
         print('有敏感词')

作业

  1. 用变量name = "aleX leNb"完成如下操作
    1)移除name变量对应的值两边的空格,并输出处理结果
    2)移除name变量左边的'al',并输出处理结果
    3)移除name变量右边的'Nb',并输出处理结果
    4)移除name变量开头的'a'与最后的'b',并输出处理结果
    5)判断name变量是否是以'al'开头,并输出结果
    7)将name变量对应的值中的所有'l' 替换为'p',并输出结果
    8)将name变量对应的值中的第一个'l'替换成'p',并输出结果
    9)将name变量根据'l'分割,并输出结果
    10)将name变量根据第一个'l'分割,并输出结果
    11)将name变量对应的值变大写,并输出结果
    12)将name变量对应的值变小写,并输出结果
    13)将name变量对应的值首字母'a'大写,并输出结果
    14)计算name变量中'l'出现的次数,并输出结果
    15)计算 name变量中前四位'l'出现的次数,输出结果
    16)从name变量中找到"N"对应的索引(如果找不到,则报错)
    17)从name变量中找到'X le'对应的索引,并输出结果
    18)请输出name变量的第2个字符
    19)输出name变量的前3个字符
    20)输出name变量的后2个字符
    21)输出name变量'e'所在的索引位置
    22)获取子序列,去掉最后一个字符, 如:oldboy 获取oldbo

  2. 字符串s = '132a4b5c'
    1)通过切片形成新字符串'123'
    2)通过切片得到'a4b'
    3)通过切片得到'1245'
    4)通过切片得到'3ab'
    5)通过切片得到'c'
    6)切片得到字符串'ba3'

  3. 使用while和for循环分别打印字符串s='asdfer'中每个元素

  4. 实现一个整数加法计算器
    如: content = input('请输入内容:'), 用户输入: 5+9或 5+ 9 或 5 + 9,先进行分割再计算

  5. 计算用户输入的内容中有几个整数

猜你喜欢

转载自www.cnblogs.com/SweetZxl/p/9573253.html
今日推荐