Python全栈(第一部分)day3
昨日内容回顾
格式化输出
%s %d
%%编码
- ascii: 只能显示英文,特殊字符,数字
- 万国码unicode: 最开始16位,中文不够,用32位,占用4个字节
- 升级: utf-8 utf-16 utf-32
utf-8: 最少用一个字节,8位表示一个英文;欧洲16位,两个字节;亚洲24位,三个字节 - gbk: 中国人发明的,只能用于中文和ascii码中的文字
作业讲解
判断逻辑语句的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
求出下列逻辑语句的值
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
下列结果是什么
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
简述变量命名规范
- 由数字,字母,下划线组成
- 不能以数字开头
- 不能使用python中的关键字
- 不要使用中文
- 常量名要大写
name = input(">>>") name变量是什么数据类型
str类型if条件语句的基本结构
while循环语句基本结构
写代码:计算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)
用户登陆(三次输错机会)且每次输错误时显示剩余错误次数
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
数据类型
int: 用于计算
bool: True,False,用户判断
str: 存储少量数据,进行操作
list: 存储大量数据,[1,2,3,'xkzhai','1234',[2,3,4]]
元组: 只读,(1,2,3,'第三')
dict: 字典,键值对,{'name' : 'xkzhai', 'age' : 16}
集合: {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
字符串索引与切片
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
字符串操作
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']
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)
replace
s = '线性系统理线性论代数基础'
print(s.replace('线性','非线性')) # 非线性系统理非线性论代数基础
print(s.replace('线性','非线性',1)) # 非线性系统理线性论代数基础
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('有敏感词')
作业
用变量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字符串s = '132a4b5c'
1)通过切片形成新字符串'123'
2)通过切片得到'a4b'
3)通过切片得到'1245'
4)通过切片得到'3ab'
5)通过切片得到'c'
6)切片得到字符串'ba3'使用while和for循环分别打印字符串s='asdfer'中每个元素
实现一个整数加法计算器
如: content = input('请输入内容:'), 用户输入: 5+9或 5+ 9 或 5 + 9,先进行分割再计算计算用户输入的内容中有几个整数
Python全栈(第一部分)day3的更多相关文章
- python 全栈开发,Day3(正式)
一.基础数据类型 基础数据类型,有7种类型,存在即合理. 1.int 整数 主要是做运算的 .比如加减乘除,幂,取余 + - * / ** %...2.bool 布尔值 判断真假以及作为条件变量3. ...
- Python全栈开发,Day3
一.基本数据类型 基础数据类型,有7种类型,存在即合理. 1.int 整数 主要是做运算的.比如加减乘除,幂,取余 + - * / ** % ... 2.bool 布尔值 判断真假以及作为条件变量 ...
- python 全栈开发,Day3
python之集合,深浅copy 一.集合 集合是无序的,不重复的数据集合,它里面的元素是可哈希的(不可变类型),但是集合本身是不可哈希(所以集合做不了字典的键)的.以下是集合最重要的两点: 去重,把 ...
- python全栈第一章
第一章 Python基础变量定义规则:1.变量名只能是字母数字或者下划线的任意组合2.变量名的第一个字符不能是数字3.关键字不能申明为变量名定义方式:1.驼峰体AgeOfSzp2.下划线隔开Age_o ...
- Python 全栈开发:day3 作业与默写
# 1.有变量name = "aleX leNb" 完成如下操作:name = 'aleX leNb'# 1)移除 name 变量对应的值两边的空格,并输出处理结果print(na ...
- Python全栈开发记录_第一篇(循环练习及杂碎的知识点)
Python全栈开发记录只为记录全栈开发学习过程中一些难和重要的知识点,还有问题及课后题目,以供自己和他人共同查看.(该篇代码行数大约:300行) 知识点1:优先级:not>and 短路原则:a ...
- Python全栈开发【面向对象】
Python全栈开发[面向对象] 本节内容: 三大编程范式 面向对象设计与面向对象编程 类和对象 静态属性.类方法.静态方法 类组合 继承 多态 封装 三大编程范式 三大编程范式: 1.面向过程编程 ...
- Python全栈开发【模块】
Python全栈开发[模块] 本节内容: 模块介绍 time random os sys json & picle shelve XML hashlib ConfigParser loggin ...
- Python全栈开发【基础四】
Python全栈开发[基础四] 本节内容: 匿名函数(lambda) 函数式编程(map,filter,reduce) 文件处理 迭代器 三元表达式 列表解析与生成器表达式 生成器 匿名函数 lamb ...
- Python全栈开发【基础二】
Python全栈开发[基础二] 本节内容: Python 运算符(算术运算.比较运算.赋值运算.逻辑运算.成员运算) 基本数据类型(数字.布尔值.字符串.列表.元组.字典) 其他(编码,range,f ...
随机推荐
- day-03(js)
回顾: css: 层叠样式表 作用: 渲染页面 提供工作效率,将html和样式分离 和html的整合 方式1:内联样式表 通过标签的style属性 <xxx style="...&qu ...
- Redis作为lru缓存作用
当 Redis 作为缓存使用时,当你添加新的数据时,有时候很方便使 Redis 自动回收老的数据.LRU 实际上是被唯一支持的数据移除方法.Redis 的 maxmemory 指令,用于限制内存使用到 ...
- JDK动态代理和CGLIB代理的区别
一.原理区别: java动态代理是利用反射机制生成一个实现代理接口的匿名类,在调用具体方法前调用InvokeHandler来处理. 而cglib动态代理是利用asm开源包,对代理对象类的class文件 ...
- Freemarker中的日期输出
<p> ${scheme.createTime?string("yyyy年MM月dd日 HH:mm:ss")}</p>
- HDU 1052(田忌赛马 贪心)
题意是田忌赛马的背景,双方各有n匹马,下面两行分别是田忌和齐王每匹马的速度,要求输出田忌最大的净胜场数*每场的赌金200. 开始的时候想对双方的马匹速度排序,然后比较最快的马,能胜则胜,否则用最慢的马 ...
- GIL 全局解释器
全局解释器锁 GIL 相当于给python解释器加了一把互斥锁 每一个进程都有一把互斥锁,所有线程必须先拿到解释器,才能执行代码, 同一进程下,所有线程并发 在 Cpython 解释器下,多个进程可以 ...
- CorelDrawX8安装时提示已安装另一个版本
(1)首先卸载VIsualC++ 2015 运行库. (2)如果有VisualC++ 2017运行库,卸载VisualC++2017运行库,即可.
- luogu 1772 物流运输 ZJOI2006 spfa+dp
主要路径上存在时间限制(消失) 因为数据较小(点数较小),利用限制条件在规定时间内分别spfa,(也可用floyd) 再通过dp取最优值 #include<bits/stdc++.h> # ...
- oracle 重建索引以及导出所有的索引脚本(可以解决还原数据库文件时先还原数据,在重新用脚本创建索引)
导出数据库备份文件 1. 备份服务器数据,采用并行方式,加快备份速度(文件日期根据具体操作日期修改) expdp jhpt/XXXX directory=databackup dumpfile=dpf ...
- Debian Security Advisory(Debian安全报告) DSA-4407-1 xmltooling
Package : xmltooling CVE ID : CVE-2019-9628 Ross Geerlings发现xmltools库没有正确处理关于错误(畸形)XM ...