一、in的使用

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

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

执行输出: True

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

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

执行输出:False

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

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

执行输出

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

二、while else的使用

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

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

执行输出
1
2
3

1
2
3
4
5
6
7
8
9
count = 1
falg = True
while falg:
    print(count)
    if count == 3:
        falg = False
    count += 1
else:
    print('循环正常完毕')

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

三、格式化输出

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

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

第一种替换方式

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

执行输出:

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

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

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

完整代码如下:

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

执行输出:

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

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

第三种替换方式

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

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

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

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

执行输出

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

第四种替换方式

1
2
3
4
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

1
print(1 > 2 and 3 < 4)

执行输出: False

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

执行输出: True

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

False or True 结果为True

1
print(1 and 2)

执行输出: 2

1
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的数字,都是真

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

执行输出:
1
2
3
-1

第三种,混合

1
print(1 > 2 or 3 and 4)

执行输出: 4

1
2
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

1
print(int(True))

执行输出:1

1
2
3
4
print(int(True))
print(int(False))
print(bool(100))
print(bool(0))

执行输出:
1
0
True
False

六、编码

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

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

1
2
3
4
5
6
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

1
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

1
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

1
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

1
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

1
2
3
4
5
6
7
8
9
10
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条件语句的基本结构?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#第一种
if 条件:
    结果
     
#第二种
if 条件:
    结果
else:
    结果
 
#第三种
if 条件:
    结果
elif 条件:
    结果
...
 
#第四种
if 条件:
    结果
elif 条件:
    结果
...
else:
    结果
 
#第五种
if 条件:
    if 条件:
        结果
    elif 条件:
        结果
elif 条件:
    结果
...
else:
    结果

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

1
2
while 条件:
    结果

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

1
2
3
4
5
6
7
8
9
10
11
12
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. ⽤户登陆(三次输错机会)且每次输错误时显示剩余错误次数(提示:使⽤字符串格式化)

1
2
3
4
5
6
7
8
9
10
11
12
13
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

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

执行输出:

请输入你的姓名:zhang
请输入你的地点:家里
请输入你的爱好:看片 敬爱可亲的zhang

最喜欢在家里

地⽅⼲看片

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

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

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

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

1
2
3
4
5
6
7
8
9
10
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(in,while else,格式化输出,逻辑运算符,int与bool转换,编码)的更多相关文章

  1. python 全栈开发,Day2(in,while else,格式化输出,逻辑运算符,int与bool转换,编码)

    一.in的使用 in 操作符用于判断关键字是否存在于变量中 a = '男孩wusir' print('男孩' in a) 执行输出: True in是整体匹配,不会拆分匹配. a = '男孩wusir ...

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

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

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

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

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

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

  5. Python全栈开发【模块】

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

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

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

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

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

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

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

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

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

随机推荐

  1. 小C的数学问题 【单调栈】

    问题 J: 小C的数学问题 时间限制: 1 Sec  内存限制: 128 MB 提交: 565  解决: 141 [提交] [状态] [命题人:外部导入] 题目描述 小C是个云南中医学院的大一新生,在 ...

  2. vs2015 + Python3.5 环境搭建

    1. vs2015只支持Python3.5及以前的版本,对应Anaconda3.4.2之前的版本. 2. 卸载掉所有安装过的Python 3. 建议重装VS2015, 因为增量升级Python Too ...

  3. Connections in Galaxy War (逆向并查集)题解

    Connections in Galaxy War In order to strengthen the defense ability, many stars in galaxy allied to ...

  4. (转)干货|这篇TensorFlow实例教程文章告诉你GANs为何引爆机器学习?(附源码)

    干货|这篇TensorFlow实例教程文章告诉你GANs为何引爆机器学习?(附源码) 该博客来源自:https://mp.weixin.qq.com/s?__biz=MzA4NzE1NzYyMw==& ...

  5. Images之base image

    Create a base image Most Dockerfiles start from a parent image. If you need to completely control th ...

  6. tomcat启动出现Preparing launch delegate,一直卡在100%

    本地启动项目时,Tomcat一直停留在, Starting Tomcat V8.0 Server at localhost   Preparing launch delegate...    百度可得 ...

  7. [转载]哪个版本的gcc才支持c11

    转自:https://blog.csdn.net/haluoluo211/article/details/71141093 哪个版本的gcc才支持c11 2017年05月03日 19:25:43 Fi ...

  8. 17秋 SDN课程 第五次上机作业

    17秋 SDN课程 第五次上机作业 Project:https://github.com/Wasdns/new_balance Slide is available at https://github ...

  9. DPDK 网卡绑定和解绑

    参考: DPDK网卡绑定和解绑 DPDK的安装与绑定网卡 DPDK 网卡绑定和解绑 注意: 建议不要使用本文的eth0网卡绑定dpdk驱动. 1.进入DPDK目录: $ cd dpdk/tools/ ...

  10. Termux 一款安卓终端模拟器

    Termux官网 https://termux.com/ 用处 提供了一个类似于Linux终端的界面,可以使用apt安装程序.目前我在上面跑了我以前写的一些爬虫脚本,运行完全没有问题. 玩法 玩法还是 ...