昨日内容回顾

  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. 计算用户输入的内容中有几个整数

Python全栈(第一部分)day3的更多相关文章

  1. python 全栈开发,Day3(正式)

    一.基础数据类型 基础数据类型,有7种类型,存在即合理. 1.int 整数 主要是做运算的 .比如加减乘除,幂,取余  + - * / ** %...2.bool 布尔值 判断真假以及作为条件变量3. ...

  2. Python全栈开发,Day3

    一.基本数据类型 基础数据类型,有7种类型,存在即合理. 1.int 整数 主要是做运算的.比如加减乘除,幂,取余 + - * / **  % ... 2.bool 布尔值 判断真假以及作为条件变量 ...

  3. python 全栈开发,Day3

    python之集合,深浅copy 一.集合 集合是无序的,不重复的数据集合,它里面的元素是可哈希的(不可变类型),但是集合本身是不可哈希(所以集合做不了字典的键)的.以下是集合最重要的两点: 去重,把 ...

  4. python全栈第一章

    第一章 Python基础变量定义规则:1.变量名只能是字母数字或者下划线的任意组合2.变量名的第一个字符不能是数字3.关键字不能申明为变量名定义方式:1.驼峰体AgeOfSzp2.下划线隔开Age_o ...

  5. Python 全栈开发:day3 作业与默写

    # 1.有变量name = "aleX leNb" 完成如下操作:name = 'aleX leNb'# 1)移除 name 变量对应的值两边的空格,并输出处理结果print(na ...

  6. Python全栈开发记录_第一篇(循环练习及杂碎的知识点)

    Python全栈开发记录只为记录全栈开发学习过程中一些难和重要的知识点,还有问题及课后题目,以供自己和他人共同查看.(该篇代码行数大约:300行) 知识点1:优先级:not>and 短路原则:a ...

  7. Python全栈开发【面向对象】

    Python全栈开发[面向对象] 本节内容: 三大编程范式 面向对象设计与面向对象编程 类和对象 静态属性.类方法.静态方法 类组合 继承 多态 封装 三大编程范式 三大编程范式: 1.面向过程编程 ...

  8. Python全栈开发【模块】

    Python全栈开发[模块] 本节内容: 模块介绍 time random os sys json & picle shelve XML hashlib ConfigParser loggin ...

  9. Python全栈开发【基础四】

    Python全栈开发[基础四] 本节内容: 匿名函数(lambda) 函数式编程(map,filter,reduce) 文件处理 迭代器 三元表达式 列表解析与生成器表达式 生成器 匿名函数 lamb ...

  10. Python全栈开发【基础二】

    Python全栈开发[基础二] 本节内容: Python 运算符(算术运算.比较运算.赋值运算.逻辑运算.成员运算) 基本数据类型(数字.布尔值.字符串.列表.元组.字典) 其他(编码,range,f ...

随机推荐

  1. day-03(js)

    回顾: css: 层叠样式表 作用: 渲染页面 提供工作效率,将html和样式分离 和html的整合 方式1:内联样式表 通过标签的style属性 <xxx style="...&qu ...

  2. Redis作为lru缓存作用

    当 Redis 作为缓存使用时,当你添加新的数据时,有时候很方便使 Redis 自动回收老的数据.LRU 实际上是被唯一支持的数据移除方法.Redis 的 maxmemory 指令,用于限制内存使用到 ...

  3. JDK动态代理和CGLIB代理的区别

    一.原理区别: java动态代理是利用反射机制生成一个实现代理接口的匿名类,在调用具体方法前调用InvokeHandler来处理. 而cglib动态代理是利用asm开源包,对代理对象类的class文件 ...

  4. Freemarker中的日期输出

    <p> ${scheme.createTime?string("yyyy年MM月dd日 HH:mm:ss")}</p>

  5. HDU 1052(田忌赛马 贪心)

    题意是田忌赛马的背景,双方各有n匹马,下面两行分别是田忌和齐王每匹马的速度,要求输出田忌最大的净胜场数*每场的赌金200. 开始的时候想对双方的马匹速度排序,然后比较最快的马,能胜则胜,否则用最慢的马 ...

  6. GIL 全局解释器

    全局解释器锁 GIL 相当于给python解释器加了一把互斥锁 每一个进程都有一把互斥锁,所有线程必须先拿到解释器,才能执行代码, 同一进程下,所有线程并发 在 Cpython 解释器下,多个进程可以 ...

  7. CorelDrawX8安装时提示已安装另一个版本

    (1)首先卸载VIsualC++ 2015 运行库. (2)如果有VisualC++ 2017运行库,卸载VisualC++2017运行库,即可.

  8. luogu 1772 物流运输 ZJOI2006 spfa+dp

    主要路径上存在时间限制(消失) 因为数据较小(点数较小),利用限制条件在规定时间内分别spfa,(也可用floyd) 再通过dp取最优值 #include<bits/stdc++.h> # ...

  9. oracle 重建索引以及导出所有的索引脚本(可以解决还原数据库文件时先还原数据,在重新用脚本创建索引)

    导出数据库备份文件 1. 备份服务器数据,采用并行方式,加快备份速度(文件日期根据具体操作日期修改) expdp jhpt/XXXX directory=databackup dumpfile=dpf ...

  10. Debian Security Advisory(Debian安全报告) DSA-4407-1 xmltooling

    Package        : xmltooling CVE ID         : CVE-2019-9628 Ross Geerlings发现xmltools库没有正确处理关于错误(畸形)XM ...