一、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. django基础 -- 2. django初识

    一.模块渲染  jinja2 实现简单的字符串替换(动态页面) 1.下载 pip install jinja2 示例 : html文件中 <!DOCTYPE html> <html ...

  2. HDU 4638 Group(莫队)题解

    题意:n个数,每个数有一个值,每次询问一个区间,问你这个区间能分成连续的几段(比如7 1 2 8 就是两端 1 2 和 7 8) 思路:莫队.因为L.R移动顺序wa了20发...问了一下别人,都是先扩 ...

  3. oracle 之 插入超长字段并包含&字符的处理方法

    oracle 在插入超长数据字符串时是默认转为varchar2类型,而这类型只有4000字节,即使通过oracle改变字符串类型为clob,也是在插入时默认转为varchar2类型. 处理方式:可以通 ...

  4. 搭建git 服务器

    Gogs 什么是 Gogs? Gogs 是一款极易搭建的自助 Git 服务. https://gogs.io/docs

  5. 使用Java Api 操作HDFS

    如题 我就是一个标题党  就是使用JavaApi操作HDFS,使用的是MAVEN,操作的环境是Linux 首先要配置好Maven环境,我使用的是已经有的仓库,如果你下载的jar包 速度慢,可以改变Ma ...

  6. HDU 4859 海岸线(最小割+最大独立点权变形)

    http://acm.hdu.edu.cn/showproblem.php?pid=4859 题意: 欢迎来到珠海!由于土地资源越来越紧张,使得许多海滨城市都只能依靠填海来扩展市区以求发展.作为Z市的 ...

  7. WinForm 拖动、移动窗体

    private const int WM_NCLBUTTONDOWN = 0XA1; private const int HTCAPTION = 2; [System.Runtime.InteropS ...

  8. codeforces gym 100947 J. Killing everything dp+二分

    J. Killing everything time limit per test 4 seconds memory limit per test 64 megabytes input standar ...

  9. 什么是 MIME TYPE?

    文章来源: http://baike.baidu.com/item/MIME https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Basics_of_H ...

  10. win10 下载安装eclipse

    官网:https://www.eclipse.org 选择下载包 选择下载win 64版本 解压后目录结构如下: 点击运行eclipse