一、in的使用

in 操作符用于判断关键字是否存在于变量中

a = '男孩wusir'
print('男孩' in a)

执行输出: True

in是整体匹配,不会拆分匹配。

a = '男孩wusir'
print('男孩sir' in a)

执行输出:False

比如评论的敏感词汇,会用到in 和not in

comment = input('请输入你的评论:')
if '苍井空' in comment:
print('您输入的有敏感词汇,请重新输入')

执行输出

请输入你的评论:苍井空
您输入的有敏感词汇,请重新输入

二、while else的使用

while else 如果循环被break打断,程序不会走else

count = 1
while True:
print(count)
if count == 3:break
count += 1
else:
print('循环正常完毕')

执行输出
1
2
3

count = 1
falg = True
while falg:
print(count)
if count == 3:
falg = False
count += 1
else:
print('循环正常完毕')

执行输出:
1
2
3
循环正常完毕

三、格式化输出

比如用户输入信息后,输出一段话

msg = '我叫唐僧,今年25岁,爱好念经'  

第一种替换方式

#% 占位符 s str 字符串 d digit 数字
name = input('请输入你的姓名:')
age = input('请输入你的年龄:')
hobby = input('请输入你的爱好:')
msg = '我叫%s,今年%d岁,爱好%s' % (name,int(age),hobby)
print(msg)

执行输出:

请输入你的姓名:唐僧
请输入你的年龄:25
请输入你的爱好:念经
我叫唐僧,今年25岁,爱好念经

第二种替换方式
定义一个字典

dic = {'name':'老男孩','age':51,'hobby':'无所谓'}

完整代码如下:

dic = {'name':'jack','age':51,'hobby':'无所谓'}
msg = '我叫%(name)s,今年%(age)d岁,爱好%(hobby)s' % dic
print(msg)

执行输出:

我叫jack,今年51岁,爱好无所谓

格式化输出,就是做固定模板填充

第三种替换方式

name = input('请输入你的姓名:')
age = input('请输入你的年龄:')
msg = '我叫%s,今年%d岁,学习进度为1%' % (name,int(age))
print(msg)

执行报错
ValueError: invalid literal for int() with base 10: 'sf'

#在格式化输出中单纯的显示% 用%% 解决

name = input('请输入你的姓名:')
age = input('请输入你的年龄:')
msg = '我叫%s,今年%d岁,学习进度为1%%' % (name,int(age))
print(msg)

执行输出

请输入你的姓名:zhang
请输入你的年龄:21
我叫zhang,今年21岁,学习进度为1%

第四种替换方式

name = input('请输入你的姓名:')
age = input('请输入你的年龄:')
msg = '我叫{},今年{}岁,学习进度为1%'.format(name,int(age))
print(msg)

执行输出

请输入你的姓名:xiao
请输入你的年龄:24
我叫xiao,今年24岁,学习进度为1%

四、逻辑运算符

针对逻辑运算的进一步研究:

  1,在没有()的情况下not 优先级高于 and,and优先级高于or,即优先级关系为( )>not>and>or,同一优先级从左往右计算。

and or not
第一种:前后都是比较运算
优先级: () > not > and > or
同一个优先级,从左至右依次计算
false and 任何条件,都是false
true and false,结果为false

print(1 > 2 and 3 < 4)

执行输出: False

print(1 > 2 and 3 < 4 and 3 > 2 or 2 < 3)

执行输出: True

在or中,只要有真,结果必定为真。

False or True 结果为True

print(1 and 2)

执行输出: 2

print(1 and 2)
print(0 and 2)

执行输出:
2
0

第二种:前后都是数字运算

x or y , x为真,值就是x,x为假,值是y;

x and y, x为真,值是y,x为假,值是x。

非0的数字,都是真

print(1 or 3)
print(2 or 3)
print(0 or 3)
print(-1 or 3)

执行输出:
1
2
3
-1

第三种,混合

print(1 > 2 or 3 and 4)

执行输出: 4

print(1 > 2 or 3 and 4)
print(2 or 2 > 3 and 4)

执行输出:
4
2

五、数据类型的转换

int与布尔值的转换
int --> bool 非0即True,0为False
bool --> int True 1 False 0

print(int(True))

执行输出:1

print(int(True))
print(int(False))
print(bool(100))
print(bool(0))

执行输出:
1
0
True
False

六、编码

编码很重要,总会遇到编码的问题

1,发电报:滴滴滴滴 实际是高低电平。
密码本:

今 0000 0001
天 0000 0101
喝 0000 0011
酒 0000 1100
去 0001 1010
呀 0001 0001

0010010 1000011 1100101 010001

2,计算机在存储,和传输的时候, 01010101
初期密码本:
asiic 包含数字,英文,特殊字符。八位
01000001 01000010 01000011 A B C
8位 = 1 byte 表示一个字符。
ascii最左1位都是0,为了拓展使用的。

ASCII码表里的字符总共有256个
前128个为常用的字符如运算符
后128个为 特殊字符是键盘上找不到的字符

万国码unicode,将所有国家的语言包含在这个密码本。
初期:16位,两个字节,表示一个字符。
A : 00010000 00010010
中: 00010010 00010010
升级:32位,四个字节,表示一个字符。
A : 00010000 00010010 00010000 00010010
中: 00010010 00010010 00010010 00010010
32位资源浪费。

升级:utf-8。最少用8位(一个字节),表示一个字符。
英文:a :00010000 用8位表示一个字符。
欧洲:00010000 00010000 16位两个字节表示一个字符。
亚洲 中 :00010000 00010000 00010000 24位,三个字节表示一个字符。

utf-16 不常用,最少用16位

gbk:国标
只包含:英文中文。
英文:a :00010000 8位,一个字节表示一个字符。
中文:中:00010000 00010000 16位,两个字节表示一个字符。
gb2312 也是国标的一种

单位换算
8 bit = 1 byte
1024 byte = 1 kb
1024 kb = 1 MB
1024 MB = 1 GB
1024 GB = 1 TB

作业:

1、判断下列逻辑语句的True,False.
1)1 > 1 or 3 < 4 or 4 > 5 and 2 > 1 and 9 > 8 or 7 < 6
2)not 2 > 1 and 3 < 4 or 4 > 5 and 2 > 1 and 9 > 8 or 7 < 6

2、求出下列逻辑语句的值。
1),8 or 3 and 4 or 2 and 0 or 9 and 7
2),0 or 2 and 3 and 4 or 6 and 0 or 3

3、下列结果是什么?
1)、6 or 2 > 1
2)、3 or 2 > 1
3)、0 or 5 < 4
4)、5 < 4 or 3
5)、2 > 1 or 6
6)、3 and 2 > 1
7)、0 and 3 > 1
8)、2 > 1 and 3
9)、3 > 1 and 0
10)、3 > 1 and 2 or 2 < 3 and 3 and 4 or 3 > 2

4. 简述变量命名规范
5. name = input(“>>>”) name变量是什么数据类型?
6. if条件语句的基本结构?
7. while循环语句基本结构?
8. 写代码:计算 1 - 2 + 3 ... + 99 中除了88以外所有数的总和?
9. ⽤户登陆(三次输错机会)且每次输错误时显示剩余错误次数(提示:使⽤字符串格式化)
10. 简述ascii、unicode、utf-8编码关系?
11. 简述位和字节的关系?
12. “⽼男孩”使⽤UTF-8编码占⽤⼏个字节?使⽤GBK编码占⼏个字节?
13. 制作趣味模板程序需求:等待⽤户输⼊名字、地点、爱好,根据⽤户的名字和爱好进⾏任意现实 如:敬爱可亲的xxx,最喜欢在xxx地⽅⼲xxx
14.  等待用户输入内容,检测用户输入内容中是否包含敏感字符?如果存在敏感字符提示“存在敏感字符请重新输入”,并允许用户重新输入并打印。敏感字符:"小粉嫩"、"大铁锤"

15. 单⾏注释以及多⾏注释?

16. 简述你所知道的Python3和Python2的区别?

17. 看代码书写结果:
a = 1>2 or 4<7 and 8 == 8
print(a)

18.continue和break区别?

答案:

1、判断下列逻辑语句的True,False.
1)1 > 1 or 3 < 4 or 4 > 5 and 2 > 1 and 9 > 8 or 7 < 6

print(1 > 1 or 3 < 4 or 4 > 5 and 2 > 1 and 9 > 8 or 7 < 6)

执行输出:True

过程解析:

1.先判断and部分

4 > 5 and 2 > 1 and 9 > 8

进一步分解结果为
False and True and True
最终结果为False

在继续左右2边的判断
1 > 1 or 3 < 4 or True or 7 < 6

进一步结果为
False or True or True or False

最终结果为True 。因为在or判断中,只要有True,结果必定为True

2)not 2 > 1 and 3 < 4 or 4 > 5 and 2 > 1 and 9 > 8 or 7 < 6

print(not 2 > 1 and 3 < 4 or 4 > 5 and 2 > 1 and 9 > 8 or 7 < 6)

执行输出:False

2、求出下列逻辑语句的值。
1),8 or 3 and 4 or 2 and 0 or 9 and 7

print(8 or 3 and 4 or 2 and 0 or 9 and 7)

执行输出:8

2),0 or 2 and 3 and 4 or 6 and 0 or 3

print(0 or 2 and 3 and 4 or 6 and 0 or 3)

执行输出:4

3、下列结果是什么?

1)、6 or 2 > 1
2)、3 or 2 > 1
3)、0 or 5 < 4
4)、5 < 4 or 3
5)、2 > 1 or 6
6)、3 and 2 > 1
7)、0 and 3 > 1
8)、2 > 1 and 3
9)、3 > 1 and 0
10)、3 > 1 and 2 or 2 < 3 and 3 and 4 or 3 > 2

print(6 or 2 > 1)
print(3 or 2 > 1)
print(0 or 5 < 4)
print(5 < 4 or 3)
print(2 > 1 or 6)
print(3 and 2 > 1)
print(0 and 3 > 1)
print(2 > 1 and 3)
print(3 > 1 and 0)
print(3 > 1 and 2 or 2 < 3 and 3 and 4 or 3 > 2)

执行输出:

6
3
False
3
True
True
0
3
0
2

4. 简述变量命名规范

  1. 变量是由数字,字母,下划线,任意组合。
  2. 变量不能以数字开头。
  3. 不能是python中的关键字。
  4. 不能太长,不能是中文,要有描述性。
  5. 官方推荐: 下划线命名法,单词之间用下划线连接。

5. name = input(“>>>”) name变量是什么数据类型?

字符串类型

6. if条件语句的基本结构?

#第一种
if 条件:
结果 #第二种
if 条件:
结果
else:
结果 #第三种
if 条件:
结果
elif 条件:
结果
... #第四种
if 条件:
结果
elif 条件:
结果
...
else:
结果 #第五种
if 条件:
if 条件:
结果
elif 条件:
结果
elif 条件:
结果
...
else:
结果

7. while循环语句基本结构?

while 条件:
结果

8. 写代码:计算 1 - 2 + 3 ... + 99 中除了88以外所有数的总和?

count = 0
the_sum = 0
while count < 99:
count += 1
if count == 88:
continue
if (count % 2) == 0:
the_sum -= count
else:
the_sum += count print(the_sum)

执行输出: 138

9. ⽤户登陆(三次输错机会)且每次输错误时显示剩余错误次数(提示:使⽤字符串格式化)

username = 'xiao'
password = '123'
max = 3
i = 0
while i < max:
i += 1
name = input('请输入用户名:')
pwd = input('请输入密码:')
if name == username and pwd == password:
print('登陆成功')
break
else:
print('用户名或密码错误,还剩余{}次机会!'.format(max-i))

执行输出:

请输入用户名:fds
请输入密码:fds
用户名或密码错误
剩余2 次机会!
请输入用户名:34
请输入密码:343
用户名或密码错误
剩余1 次机会!
请输入用户名:35
请输入密码:35
用户名或密码错误
剩余0 次机会!

10. 简述ascii、unicode、utf-8编码关系?

ascii 是最早美国用的标准信息交换码,把所有的字母大小写,各种符号用 二进制来表示,共有256种,同时加入拉丁文等字符,1bytes代表一个字符。

Unicode是为了统一世界各国语言的不同,统一用2个bytes代表一个字符,可以表达2**16=65556个,称为万国语言,特点:速度快,但浪费空间,

可以用在内存处理中,兼容了utf-8,gbk,ASCII。

utf-8 为了改变Unicode的这种缺点,规定1个英文字符用1个字节表示,1个中文字符用3个字节表示,

特点;节省空间,速度慢,用在硬盘数据传输,网络数据传输,相比硬盘和网络速度,体现不出来。

11. 简述位和字节的关系?

位:二进制位(bit)是计算机存储信息的基本单位,代表1个二进制数位,其值为0或1。
字节:8个连续的二进制位为一个字节,可以存放1个西文字符的编码。

12. "⽼男孩"使⽤UTF-8编码占⽤⼏个字节?使⽤GBK编码占⼏个字节?

在utf-8中,一个中文字符占用3个字节。在GBK中,一个中文字符占用2个字节

所以答案为9和6

13. 制作趣味模板程序需求:等待⽤户输⼊名字、地点、爱好,根据⽤户的名字和爱好进⾏任意现实 如:敬爱可亲的xxx,最喜欢在xxx地⽅⼲xxx

name = input('请输入你的姓名:')
addres = input('请输入你的地点:')
hobby = input('请输入你的爱好:')
msg = '''
敬爱可亲的{}
最喜欢在{}
地⽅⼲{}
'''.format(name,addres,hobby)
print(msg)

执行输出:

请输入你的姓名:zhang
请输入你的地点:家里
请输入你的爱好:看片 敬爱可亲的zhang
最喜欢在家里
地⽅⼲看片

14.  等待用户输入内容,检测用户输入内容中是否包含敏感字符?如果存在敏感字符提示“存在敏感字符请重新输入”,并允许用户重新输入并打印。敏感字符:"小粉嫩"、"大铁锤"

第一步,先实现关键字匹配

keyword = ["⼩粉嫩","⼤铁锤"]
comment = input('请输入评论:')
for filter_word in keyword:
if filter_word in comment:
print('error!')
break
else:
print('ok!')

第2步,实现无限输入并检查敏感词

keyword = ["⼩粉嫩","⼤铁锤"]
while True:
comment = input('请输入评论:')
for filter_word in keyword:
if filter_word in comment:
print('评论含有敏感词,请重新输入!')
break
else:
print('提交成功!')
break

执行输出:

请输入评论:⼩粉嫩
评论含有敏感词,请重新输入!
请输入评论:dg
提交成功!

15. 单⾏注释以及多⾏注释?

单行注释:使用符号#
多行注释:使用符号""" """ 和''' '''

16. 简述你所知道的Python3和Python2的区别?

1.源码风格不一样
python2 源码混乱,重复代码较多。
python3 源码规范,优美清新简单。

2.print方法有区别
python3的print方法,必须要加括号

3.默认编码不一样
python 3x 默认编码:utf-8
python 2x 默认编码: ascii

4.input不同
python 2x: raw_input()
python 3x: input()

17. 看代码书写结果: 
a = 1>2 or 4<7 and 8 == 8 
print(a)

先执行and部分4<7 and 8 == 8 ,4<7 结果为True 。8 == 8 结果为True 。那么and部分的结果为True

那么就剩下1 > 2 or True,最终结果为 True

18.continue和break区别?

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

Day3默写代码:
Bit,Bytes,Kb,Mb,Gb,Tb之间的转换关系。

8 bit = 1 byte
1024 byte = 1 kb
1024 kb = 1 MB
1024 MB = 1 GB
1024 GB = 1 TB

Unicode,utf-8,gbk,每个编码英文,中文,分别用几个字节表示。

  Unicode utf-8 gbk
英文 1 1 1
中文 2 3 2

python 全栈开发,Day2(正式)的更多相关文章

  1. python全栈开发-Day2 布尔、流程控制、循环

    python全栈开发-Day2 布尔 流程控制 循环   一.布尔 1.概述 #布尔值,一个True一个False #计算机俗称电脑,即我们编写程序让计算机运行时,应该是让计算机无限接近人脑,或者说人 ...

  2. Python全栈开发【面向对象进阶】

    Python全栈开发[面向对象进阶] 本节内容: isinstance(obj,cls)和issubclass(sub,super) 反射 __setattr__,__delattr__,__geta ...

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

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

  4. Python全栈开发【模块】

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

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

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

  6. Python全栈开发【基础三】

    Python全栈开发[基础三]  本节内容: 函数(全局与局部变量) 递归 内置函数 函数 一.定义和使用 函数最重要的是减少代码的重用性和增强代码可读性 def 函数名(参数): ... 函数体 . ...

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

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

  8. Python全栈开发【基础一】

    Python全栈开发[第一篇] 本节内容: Python 的种类 Python 的环境 Python 入门(解释器.编码.变量.input输入.if流程控制与缩进.while循环) if流程控制与wh ...

  9. python 全栈开发之路 day1

    python 全栈开发之路 day1   本节内容 计算机发展介绍 计算机硬件组成 计算机基本原理 计算机 计算机(computer)俗称电脑,是一种用于高速计算的电子计算机器,可以进行数值计算,又可 ...

  10. Python全栈开发

    Python全栈开发 一文让你彻底明白Python装饰器原理,从此面试工作再也不怕了. 一.装饰器 装饰器可以使函数执行前和执行后分别执行其他的附加功能,这种在代码运行期间动态增加功能的方式,称之为“ ...

随机推荐

  1. java网络编程(4)——udp实现聊天

    UDP可以实现在线聊天功能,我这里就是简单模拟一下: 发送端: package com.seven.udp; import java.io.BufferedReader; import java.io ...

  2. [Note] 计算机网络的应用层

    应用层 原理 结构和模型 客户-服务器体系结构(client-server architecture ) 通信不是直接的,需要通过服务器转发 经常会在服务器积压大量的负载 服务器(server) 服务 ...

  3. Web自动化之Headless Chrome测试框架集成

    使用Selenium操作headless chrome 推荐 简介 WebDriver是一个W3C标准, 定义了一套检查和控制用户代理(比如浏览器)的远程控制接口,各大主流浏览器来实现这些接口以便调用 ...

  4. 开启了1000个线程并发去查询elasticsearch把es搞挂了

    org.elasticsearch.transport.RemoteTransportException: [spd-2][172.**.**.**:9300][indices:data/read/s ...

  5. mysql用户授权及数据备份恢复

    用户授权与权限撤销 修改数据库管理员从本机登陆的密码测试: mysqladmin -hlocalhost -uroot -p password "新密码" Enter passwo ...

  6. shell脚本 字串截取 正则表达式

    字串处理 子串截取方法一:使用${}表达式格式:echo ${x:起始位置:长度}(起始位置编号从0开始,可省略) 方法二:使用expr substr格式:expr substr "$x&q ...

  7. python环境jieba分词的安装

    我的python环境是Anaconda3安装的,由于项目需要用到分词,使用jieba分词库,在此总结一下安装方法. 安装说明======= 代码对 Python 2/3 均兼容 * 全自动安装:`ea ...

  8. caffe+CPU︱虚拟机+Ubuntu16.04+CPU+caffe安装笔记

    由于本机是window10系统,所以想尝试caffe就在自己电脑上整了一个虚拟机(详情可见:win10系统搭建虚拟机:VMware Workstation Player 12环境+Ubuntu Kyl ...

  9. Netty的并发编程实践3:CAS指令和原子类

    互斥同步最主要的问题就是进行线程阻塞和唤醒所带来的性能的额外损耗,因此这种同步被称为阻塞同步,它属于一种悲观的并发策略,我们称之为悲观锁.随着硬件和操作系统指令集的发展和优化,产生了非阻塞同步,被称为 ...

  10. code is 9998;desc is 插入失败exception is org.hibernate.exception.JDBCConnectionException: Could not op

    1.错误描述 [ERROR:]2015-05-05 09:27:12,090 [插入失败] org.hibernate.exception.JDBCConnectionException: Could ...