0%

day03 作业答案和讲解

  1. 判断下列逻辑语句的True,False

    1
    2
    1 > 1 or 3 < 4 or 4 > 5 and 2 > 1 and 9 > 8 or 7 < 6 的结果为:True
    not 2 > 1 and 3 < 4 or 4 > 5 and 2 > 1 and 9 > 8 or 7 < 6 的结果为:False
  2. 求出下列逻辑语句的值。

    1
    2
    8 or 3 and 4 or 2 and 0 or 9 and 7  的结果为:8
    0 or 2 and 3 and 4 or 6 and 0 or 3 的结果为:4
  3. 下列结果是什么?

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    6 or 2 > 1 的结果为:6
    3 or 2 > 1 的结果为:3
    0 or 5 < 4 的结果为:False
    5 < 4 or 3 的结果为:3
    2 > 1 or 6 的结果为:True
    3 and 2 > 1 的结果为:True
    0 and 3 > 1 的结果为:0
    2 > 1 and 3 的结果为:3
    3 > 1 and 0 的结果为:0
    3 > 1 and 2 or 2 < 3 and 3 and 4 or 3 > 2 的结果为:2
  4. 实现用户登录系统,并且要支持连续三次输错之后直接退出,并且在每次输错误时显示剩余错误次数(提示:使⽤字符串格式化)。

    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
    """
    count = 0
    while count < 3:
    count += 1
    user = input("请输入用户名:")
    pwd = input("请输入密码:")
    if user == "wupeiqi" and pwd == "123":
    print("成功")
    break
    else:
    message = "用户名或者密码错误,剩余错误次数为{}次".format(3 - count)
    print(message)
    """

    """
    count = 3
    while count > 0:
    count -= 1
    user = input("请输入用户名:")
    pwd = input("请输入密码:")
    if user == "wupeiqi" and pwd == "123":
    print("成功")
    break
    else:
    message = "用户名或者密码错误,剩余错误次数为{}次".format(count)
    print(message)
    """
  5. 猜年龄游戏
    要求:允许用户最多尝试3次,3次都没猜对的话,就直接退出,如果猜对了,打印恭喜信息并退出。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    count = 0
    while count < 3:
    count += 1
    age = input("请输入年龄:")
    age = int(age)
    if age == 73:
    print("恭喜你猜对了")
    break
    else:
    print("猜错了")

    print("程序结束")
  6. 猜年龄游戏升级版
    要求:允许用户最多尝试3次,每尝试3次后,如果还没猜对,就问用户是否还想继续玩,如果回答Y,就继续让其猜3次,以此往复,如果回答N,就退出程序,如何猜对了,就直接退出。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    count = 0
    while count < 3:
    count += 1
    age = input("请输入年龄:")
    age = int(age)
    if age == 73:
    print("恭喜你猜对了")
    break
    else:
    print("猜错了")

    if count == 3:
    choice = input("是否想继续玩(Y/N)?")
    if choice == "N":
    break
    elif choice == "Y":
    count = 0
    continue
    else:
    print("内容输入错误")
    break

    print("程序结束")

day03 Python基础

课程目标:掌握Python基础中的必备语法知识。

课程概要:

  • 循环语句
  • 字符串格式化
  • 运算符(面试题)

1. 循环语句

  • while循环
  • for循环(后期)
1
2
3
4
while 条件:
...
...
...
1
2
3
4
5
6
print("123")
while 条件:
...
...
...
print(456)

1.1 循环语句基本使用

示例1:

1
2
3
4
5
6
7
8
9
10
11
12
print("开始")
while True:
print("Alex是个小都比")
print("结束")

# 输出:
开始
Alex是个小都比
Alex是个小都比
Alex是个小都比
Alex是个小都比
...

示例2:

1
2
3
4
5
6
7
8
print("开始")
while 1 > 2:
print("如果祖国遭受到侵犯,热血男儿当自强。")
print("结束")

# 输出:
开始
结束

示例3:

1
2
3
4
5
6
7
8
9
10
11
12
data = True
print("开始")
while data:
print("如果祖国遭受到侵犯,热血男儿当自强。")
print("结束")

# 输出:
开始
如果祖国遭受到侵犯,热血男儿当自强。
如果祖国遭受到侵犯,热血男儿当自强。
如果祖国遭受到侵犯,热血男儿当自强。
...

示例4:

1
2
3
4
5
6
7
8
9
10
11
print("开始")
flag = True
while flag:
print("滚滚黄河,滔滔长江。")
flag = False
print("结束")

# 输出:
开始
滚滚黄河,滔滔长江。
结束

示例5:

1
2
3
4
5
6
7
8
9
10
11
print("开始")
num = 1
while num < 3:
print("滚滚黄河,滔滔长江。")
num = 5
print("结束")

# 输出:
开始
滚滚黄河,滔滔长江。
结束

示例6:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
print("开始")
num = 1
while num < 5:
print("给我生命,给我力量。")
num = num + 1
print("结束")

# 输出:
开始
给我生命,给我力量。
给我生命,给我力量。
给我生命,给我力量。
给我生命,给我力量。
结束
1
2
3
4
5
6
7
8
9
练习题:重复3次输出我爱我的祖国。
num = 1
while num < 4:
print("我爱我的祖国")
num = num + 1

我爱我的祖国
我爱我的祖国
我爱我的祖国

1.2 综合小案例

请实现一个用户登录系统,如果密码错误则反复提示让用户重新输入,直到输入正确才停止。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 请实现一个用户登录系统,如果密码错误则反复提示让用户重新输入,直到输入正确才停止。

print("开始运行路飞系统")

flag = True
while flag:
user = input("请输入用户名:")
pwd = input("请输入密码:")
if user == "wupeiqi" and pwd == "luffy":
print("登录成功")
flag = False
else:
print("用户名或密码错误")

print("系统结束")

练习题

  1. 补充代码实现
    猜数字,设定一个理想数字比如:66,一直提示让用户输入数字,如果比66大,则显示猜测的结果大了;如果比66小,则显示猜测的结果小了;只有输入等于66,显示猜测结果正确,然后退出循环。

    1
    2
    3
    4
    number = 66
    flag = True
    while flag:
    ...
  2. 使用循环输出1~100所有整数。

  3. 使用循环输出 1 2 3 4 5 6 8 9 10,即:10以内除7以外的整数。

  4. 输出 1~100 内的所有奇数。

  5. 输出 1~100 内的所有偶数。

  6. 求 1~100 的所有整数的和。

  7. 输出10 ~ 1 所有整数。

1.3 break

break,用于在while循环中帮你终止循环。

1
2
3
4
5
6
7
8
9
10
11
print("开始")
while True:
print("1")
break
print("2")
print("结束")

# 输出
开始
1
结束

通过示例来更深入理解break的应用。

示例1:

1
2
3
4
5
6
7
print("开始")
while True:
print("红旗飘飘,军号响。")
break
print("剑已出鞘,雷鸣电闪。")
print("从来都是狭路相逢勇者胜。")
print("结束")

示例2:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
print("开始")
i = 1
while True:
print(i)
i = i + 1
if i == 101:
break
print("结束")

# 输出
开始
1
2
...
100
结束

示例3:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
print("开始运行系统")
while True:
user = input("请输入用户名:")
pwd = input("请输入密码:")
if user == 'wupeiqi' and pwd = "oldboy":
print("登录成功")
break
else:
print("用户名或密码错误,请重新登录")
print("系统结束")

# 输出
开始运行系统
>>> 用户名
>>> 密码
正确,登录成功
系统结束
不正确,一直循环输出

所以,以后写代码时候,想要结束循环可以通过两种方式实现了,即:条件判断 和 break关键字,两种在使用时无好坏之分,只要能实现功能就行。

1.4 continue

continue,在循环中用于 结束本次循环,开始下一次循环。

1
2
3
4
5
6
7
print("开始")
while True:
print(1)
continue
print(2)
print(3)
print("结束")

示例1:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
print("开始")
while True:
print("红旗飘飘,军号响。")
continue
print("剑已出鞘,雷鸣电闪。")
print("从来都是狭路相逢勇者胜。")
print("结束")

# 输出
开始
红旗飘飘,军号响。
红旗飘飘,军号响。
红旗飘飘,军号响。
红旗飘飘,军号响。
...

示例2:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
print("开始")
i = 1
while i < 101:
if i == 7:
i = i + 1
continue
print(i)
i = i + 1
print("结束")

# 输出
开始
1
2
3
4
5
6
8
9
10
...
100
结束

示例3:

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
print("开始")
i = 1
while True:
if i == 7:
i = i + 1
continue
print(i)
i = i + 1
if i == 101:
break
print("结束")

# 输出
开始
1
2
3
4
5
6
8
9
10
...
100
结束

写在最后,对于break和continue都是放在循环语句中用于控制循环过程的,一旦遇到break就停止所有循环,一旦遇到continue就停止本次循环,开始下次循环。

当然,通过如果没有了break和continue,我们用while条件的判断以及其他协助也能完成很多功能,有了break和continue可以在一定程度上简化我们的代码逻辑。

1.5 while else

当while后的条件不成立时,else中的代码就会执行。

1
2
3
4
while 条件:
代码
else:
代码
1
2
3
4
while False:
pass
else:
print(123)
1
2
3
4
5
6
7
8
9
10
11
12
13
num = 1
while num < 5:
print(num)
num = num + 1
else:
print(666)

# 输出
1
2
3
4
666
1
2
3
4
5
6
7
8
while True:
print(123)
break
else:
print(666)

# 输出
123

2.字符串格式化

字符串格式化,使用跟便捷的形式实现字符串的拼接。

2.1 %

2.1.1 基本格式化操作

1
2
3
4
name = "武沛齐"
# 占位符
# text = "我叫%s,今年18岁" %"武沛齐"
text = "我叫%s,今年18岁" %name
1
2
3
4
5
6
name = "武沛齐"
age = 18

# text = "我叫%s,今年%s岁" %("武沛齐",18)
# text = "我叫%s,今年%s岁" %(name,age)
text = "我叫%s,今年%d岁" %(name,age)

https://www.cnblogs.com/wupeiqi/articles/5484747.html

1
2
message = "%(name)s你什么时候过来呀?%(user)s今天不在呀。" % {"name": "死鬼", "user": "李杰"}
print(message)

2.1.2 百分比

1
2
text = "兄弟,这个片我已经下载了90%了,居然特么的断网了"
print(text)
1
2
3
4
text = "%s,这个片我已经下载了90%%了,居然特么的断网了" %"兄弟"
print(text)
# 输出:
兄弟,这个片我已经下载了90%了,居然特么的断网了

一旦字符串格式化中存现百分比的显示,请一定要呀加 %% 以实现输出 %。

2.2 format(推荐)

1
2
3
4
5
text = "我叫{0},今年18岁".format("武沛齐")

text = "我叫{0},今年{1}岁".format("武沛齐",18)

text = "我叫{0},今年{1}岁,真是的姓名是{0}。".format("武沛齐",18)
1
2
3
4
5
text = "我叫{},今年18岁".format("武沛齐")

text = "我叫{},今年{}岁".format("武沛齐",18)

text = "我叫{},今年{}岁,真是的姓名是{}。".format("武沛齐",18,"武沛齐")
1
2
3
4
5
text = "我叫{n1},今年18岁".format(n1="武沛齐")

text = "我叫{n1},今年{age}岁".format(n1="武沛齐",age=18)

text = "我叫{n1},今年{age}岁,真是的姓名是{n1}。".format(n1="武沛齐",age=18)
1
2
3
text = "我叫{0},今年{1}岁"
data1 = text.format("武沛齐",666)
data2 = text.format("alex",73)
1
2
3
text = "我叫%s,今年%d岁"
data1 = text %("武沛齐",20)
data2 = text %("alex",84)

2.3 f

到Python3.6版本,更便捷。

1
text = f"嫂子喜欢{'跑步'},跑完之后满身大汗"
1
2
action = "跑步"
text = f"嫂子喜欢{action},跑完之后满身大汗"
1
2
3
4
name = "喵喵"
age = 19
text = f"嫂子的名字叫{name},今年{age}岁"
print(text)
1
2
text = f"嫂子的名字叫喵喵,今年{19 + 2}岁"
print(text)
1
2
3
# 在Python3.8引入
text = f"嫂子的名字叫喵喵,今年{19 + 2=}岁"
print(text)
1
2
3
4
5
6
7
8
9
10
11
12
# 进制转换
v1 = f"嫂子今年{22}岁"
print(v1)

v2 = f"嫂子今年{22:#b}岁"
print(v2)

v3 = f"嫂子今年{22:#o}岁"
print(v3)

v4 = f"嫂子今年{22:#x}岁"
print(v4)
1
2
3
4
5
6
7
8
9
10
# 理解
text = f"我是{'alex'},我爱大铁锤"

name = "alex"
text = f"我是{name},我爱大铁锤"

name = "alex"
text = f"我是{ name.upper() },我爱大铁锤"

# 输出:我是ALEX,我爱大铁锤

3. 运算符

提到运算符,我想大家首先想到的就是加、减、乘、除之类, 本节要系统的跟大家来聊一聊,我们写代码时常见的运算符可以分为5种:

  • 算数运算符,例如:加减乘除

    image-20201011165419956
    1
    print( 9//2 )
  • 比较运算符,例如:大于、小于

    image-20201011165434014

    注意:python3中不支持 <>

    1
    2
    3
    4
    5
    6
    if 1 >2:
    pass
    while 1>2:
    pass

    data = 1 == 2
  • 赋值运算,例如:变量赋值

    image-20201011165501909
    1
    2
    3
    4
    5
    num = 1
    while num < 100:
    print(num)
    # num = num + 1
    num += 1
  • 成员运算,例如:是否包含

    image-20201011165515812
    1
    2
    3
    4
    5
    6
    7
    v1 = "le" in "alex"  # True/False
    # 让用户输入一段文本,检测文本中是否包含敏感词。
    text = input("请输入内容:")
    if "苍老师" in text:
    print("少儿不宜")
    else:
    print(text)
  • 逻辑运算,例如:且或非

    image-20201011165530169
    1
    2
    3
    4
    5
    6
    if username == "alex" and pwd == "123":
    pass

    data = 1 > 2
    if not data:
    pass

3.1 运算符优先级

运算符的优先级有很多,常见的没几个,推荐你记住3个即可:

  • 算数优先级优先级 大于 比较运算符

    1
    2
    3
    4
    if 2 + 10 > 11:
    print("真")
    else:
    print("假")
  • 比较运算符优先级 大于 逻辑运算符

    1
    2
    3
    4
    if 1>2 and 2<10:
    print("成立")
    else:
    print("不成立")
  • 逻辑运算符内部三个优先级 not > and > or

    1
    2
    3
    4
    if not 1 and 1>2 or 3 == 8:
    print("真")
    else:
    print("假")

上述这3个优先级从高到低总结:加减乘除 > 比较 > not and or 。绝招:加括号。

3.2 面试题

逻辑运算中:and or

1
2
3
4
5
v1 = name == "alex" and pwd == "123"
# v1 = True and False

if name == "alex" and pwd == "123":
pass
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
v2 = "wupeiqi" and "alex"

# 第一步:将and前后的只转换为布尔值 True and True
# 第二步:判断本次操作取悦于谁?由于前面的是True,所以本次逻辑判断取决于后面的值。
# 所以,后面的只等于多少最终结果就是多少。 v2 = "alex"


v3 = "" and "alex"
# 第一步:将and前后的只转换为布尔值 False and True
# 第二步:判断本次操作取悦于谁?由于前面的是False,所以本次逻辑判断取决于前面的值。
# 所以,前面的只等于多少最终结果就是多少。 v2 = ""

v4 = 1 or 8
# 第一步:将and前后的只转换为布尔值 True or True
# 第二步:判断本次操作取悦于谁?由于前面的是True,所以本次逻辑判断取决于前面的值。
# v4 = 1

v5 = 0 or 8
# 第一步:将and前后的只转换为布尔值 False or True
# 第二步:判断本次操作取悦于谁?由于前面的是False,所以本次逻辑判断取决于后面的值。
# v5 = 8

练习题

1
2
3
4
5
6
7
8
9
10
11
v1 = 1 or 2
v2 = -1 or 3
v3 = 0 or -1
v4 = 0 or 100
v5 = "" or 10
v6 = "wupeiqi" or ""
v7 = 0 or ""

print(v1,v2,v3,v4,v5,v6,v7)

# or,看第一个值,如果第一个值为真,结果就应该是第一个值,否则就结果就是第二个值。
1
2
3
4
5
6
7
8
9
10
11
v1 = 4 and 8
v2 = 0 and 6
v3 = -1 and 88
v4 = "" and 7
v5 = "武沛齐" and ""
v6 = "" and 0
v7 = 0 and "中国"

print(v1,v2,v3,v4,v5,v6,v7)

# and,看第一个值,如果第一个值真,结果就应该是第二个值,否则结果就是第一个值。

面试题

如果多个and 和or的情况,先计算and再计算or.

1
2
3
4
5
6
7
8
9
10
11
12
v1 = 0 or 4 and 3 or 7 or 9 and 6
0 or 3 or 7 or 9 and 6
0 or 3 or 7 or 6
3 or 7 or 6
3 or 6
3
v2 = 8 or 3 and 4 or 2 and 0 or 9 and 7
8


v3 = 0 or 2 and 3 and 4 or 6 and 0 or 3
4

先计算not,在计算and,最后计算or

1
2
v4 = not 8 or 3 and 4 or 2
4

总结

  1. while循环语句
  2. break和continue关键字的作用
  3. 三种字符串格式化的方式
  4. 基本运算符(逻辑运算符涉及的相关面试题)

今日作业

  1. 判断下列逻辑语句的True,False

    1
    2
    1 > 1 or 3 < 4 or 4 > 5 and 2 > 1 and 9 > 8 or 7 < 6
    not 2 > 1 and 3 < 4 or 4 > 5 and 2 > 1 and 9 > 8 or 7 < 6
  2. 求出下列逻辑语句的值。

    1
    2
    8 or 3 and 4 or 2 and 0 or 9 and 7
    0 or 2 and 3 and 4 or 6 and 0 or 3
  3. 下列结果是什么?

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    6 or 2 > 1
    3 or 2 > 1
    0 or 5 < 4
    5 < 4 or 3
    2 > 1 or 6
    3 and 2 > 1
    0 and 3 > 1
    2 > 1 and 3
    3 > 1 and 0
    3 > 1 and 2 or 2 < 3 and 3 and 4 or 3 > 2
  4. 实现用户登录系统,并且要支持连续三次输错之后直接退出,并且在每次输错误时显示剩余错误次数(提示:使⽤字符串格式化)。

  5. 猜年龄游戏
    要求:允许用户最多尝试3次,3次都没猜对的话,就直接退出,如果猜对了,打印恭喜信息并退出。

  6. 猜年龄游戏升级版
    要求:允许用户最多尝试3次,每尝试3次后,如果还没猜对,就问用户是否还想继续玩,如果回答Y,就继续让其猜3次,以此往复,如果回答N,就退出程序,如何猜对了,就直接退出。

day02 快速上手

课程目标:学习Python最基础的语法知识,可以用代码快速实现一些简单的功能。

课程概要:

  • 初识编码(密码本)
  • 编程初体验
  • 输出
  • 初识数据类型
  • 变量
  • 注释
  • 输入
  • 条件语句

1.编码(密码本)

计算机中所有的数据本质上都是以0和1的组合来存储

image-20201022205915320

在计算机中会将中文内存转换成 01010101010… ,最终存储到硬盘上。

在计算机中有这么一个编码的概念(密码本)。

1
2
3
武     ->      01111111 00011010 010110110
沛 -> 01001111 10010000 001110100
齐 -> 11111111 00000000 010101010

在计算机中有很多种编码。

1
2
3
4
5
6
7
8
9
10
每种编码都有自己的一套密码本,都维护这自己的一套规则,如:
utf-8编码:
武 -> 01111111 00011010 010110110
沛 -> 01001111 10010000 001110100
齐 -> 11111111 00000000 010101010
gbk编码:
武 -> 11111111 00000010
沛 -> 01001111 01111111
齐 -> 00110011 10101010
所以,使用的不同的编码保存文件时,硬盘的文件中存储的0/1也是不同的。

注意事项:以某个编码的形式进行保存文件,以后就要以这种编码去打开这个文件。否则就会出现乱码。

1
2
UTF-8编码去保存武沛齐:01111111 00011010 010110110 01001111 10010000 001110100 11111111 00000000 010101010
GBK编码形式去打开:乱码

2.编程初体验

  • 编码必须要保持:保存和打开一直,否则会乱码。

  • 默认Python解释器是以UTF-8编码的形式打开文件。如果想要修改Python的默认解释器编码,可以这样干:

    1
    2
    3
    # -*- coding:gbk -*-

    print("我是你二大爷")
  • 建议:所有Python代码文件的都要以UTF-8编码保存和读取。

image-20201022211946339

3.输出

将结果或内容想要呈现给用户。

1
print("看着风景美如画")
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
print("                                                            * *  ")
print(" * * * * ")
print(" * * * * * * ")
print(" * * * * * * * * ")
print(" * * * * * * * * * * ")
print(" * * * * * * * * * * * * ")
print(" * * * * * * * * * * * * ")
print(" * * * * * * * * * * * * ")
print(" * * * * * * * * * * * * * * ")
print(" * * * * * * * * * * * * * * * * ")
print(" * * * * * * * * * * * * * * * * * * ")
print(" * * * * * * * * * * * * * * * * * * * * ")
print(" * * * * * * * * * * * * * * * * * * * * * * ")
print(" * * * * * * * * * * * * * * * * * * * * * * * * ")
print(" * * * * * * * * * * * * * * * * * * * * * * * * ")
print(" * * * * * * * * * * * * * * * * * * * * * * * * ")
print(" * * * * * * * * * * * * * * * * * * * * * * * * * * ")
print(" * * * * * * * * * * * * * * * * * * * * * * * * * * * * ")
print(" * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ")
print(" * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ")
print(" * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ")
print(" * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ")
print(" * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ")
print(" * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ")

关于输出:

  • 默认print在尾部会加换行符

    1
    2
    3
    4
    5
    6
    7
    print("看着风景美如画")
    print("本想吟诗增天下")

    输出:
    看着风景美如画
    本想吟诗增天下

  • 想要不换行,则可以这样干

    1
    2
    3
    4
    5
    print("看着风景美如画",end="")
    print("本想吟诗增天下",end="")

    输出:
    看着风景美如画本想吟诗增天下
    1
    2
    3
    4
    5
    print("看着风景美如画",end=",")
    print("本想吟诗增天下",end=".")

    输出:
    看着风景美如画,本想吟诗增天下.

练习题

  1. 使用print输出自己的姓名
  2. 使用print输出
    春眠不觉晓,
    出处闻啼鸟,
    夜来风雨声,
    花落知多少。
  3. 是用print输出
    春眠不觉晓,出处闻啼鸟,夜来风雨声,花落知多少。

4. 初识数据类型

刚上学时,老师教我们 数字 、拼音、汉字、真假判断 等,然后我们根据学到的内容写作文,老师来检查并打分。

现在学编程,我教大家 int、str、bool 等,然后大家根据这些内容来写代码,写完代码交给Python解释器去运行。

4.1 整形(int)

整形,整数。

整型,其实就是以前数学课上讲的整数(不包含小数),在写代码时用于表示整数相关的东西,例如:年龄、存款、尺寸、手机号等。
一般我们提到的:5、18、22、99、… 等整数 在Python中都称为是整型,且支持 加/减/乘/除/取余/指数 等操作。

1
2
3
4
5
6
7
8
9
10
11
print(666)

print(2 + 10)

print(2 * 10)

print(10 / 2)

print(10 % 3)

print(2 ** 4)

4.2 字符串(str)

字符串,其实就是我们生活中的文本信息。例如:姓名、地址、自我介绍等。
字符串有一个特点,他必须由引号引起来,如:

单行字符串

1
2
3
4
print("我是Alex")
print('我是Alex')
print('我是"alex')
print("中国北京昌平区")

多行字符串

1
2
print("""中国北京昌平区""")
print('''中国北京昌平区''')

对于字符串:

  • 加,两个字符串可以通过加号拼接起来。

    1
    print( "alex" + "是金角大王吧" )
  • 乘,让整形和字符串进行相乘,以实现让字符串重复出现N次并拼接起来。

    1
    print(3 * "我想吃饺子")

4.3 布尔类型(bool)

布尔类型中共有两个值:True / False

1
2
3
4
5
print(1 > 2)
print(False)

print(1 == 1)
print(True)
1
2
3
4
5
6
name = input("请输入你的用户名:")

if name == "alex":
print("用户登录成功")
else:
print("用户登录失败")

补充:

1
2
3
4
5
6
1 > 2 
1 == 3
"alex" == "eric"
1 == "alex"

1 > "alex" 是无法进行比较大小

4.4 类型转换

上文数据类型int/str/bool有了初步了解,他们都有自己不同的定义方式。

  • int,整型定义时,必须是数字且无引号,例如:5、8、9
  • str,字符串定义时,必须用双引号括起来,例如:”中国”、”武沛齐”、”666”
  • bool,布尔值定义时,只能写True和False

不同的数据类型都有不同的功能,例如:整型可以加减乘除 而 字符串只能加(拼接)和乘法。
如果想要做转换可遵循一个基本规则:想转换什么类型就让他包裹一些。

例如:str(666) = “666”是将整型转换为字符串、int(“888”)是将字符串转 888。

转换为整形:

1
2
3
4
5
6
7
8
9
10
11
# 字符串转换为整形(度可度之人)
int("666")
int("999")
"6" + "9" 的结果应该是: "69"
int("6") + int("9") 的结果是:15

int("alex是sb") 报错

# 布尔类型转换为整形
int(True) 转换完等于 1
int(False) 转换完等于 0

转换为字符串

1
2
3
4
5
6
7
# 整形转字符串
str(345)
str(666) + str(9) 结果为:"6669"

# 布尔类型转换为字符串
str(True) "True"
str(False) "False"

转换为布尔类型

1
2
3
4
5
6
7
8
9
10
11
# 整形转布尔
bool(1) True
bool(2) True
bool(0) False
bool(-10) True

# 字符串转布尔
bool("alex") True
bool("砂玻帮你") True
bool("") False
bool(" ") True

三句话搞定类型转换:

  • 其他所有类型转换为布尔类型时,除了 空字符串、0以为其他都是True。

  • 字符串转整形时,只有那种 “988” 格式的字符串才可以转换为整形,其他都报错。

  • 想要转换为那种类型,就用这类型的英文包裹一下就行。

    1
    2
    3
    str(...)
    int(...)
    bool(...)

练习题

  1. 计算整型50乘以10再除以5的商并使用print输出。

  2. 判断整型8是否大于10的结果并使用print输出。

  3. 计算整型30除以2得到的余数并使用print输出。

  4. 使用字符串乘法实现 把字符串”我爱我的祖国”创建三遍并拼接起来最终使用print输出。

  5. 判断 字符串”wupeiqi”和”alex”是否相等的结果并使用print输出。

  6. 判断 整型666和整型666是否相等的结果并使用print输出。

  7. 判断 字符串”666”和整型666是否相等的结果并使用print输出。

  8. 看代码写结果(禁止运行代码):

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    print( int("100")*3 )
    print( int("123") + int("88") )
    print( str(111) + str(222) )
    print( str(111)*3 )
    print( int("8") > 7 )
    print( str(111) == 111 )
    print( bool(-1) )
    print( bool(0) )
    print( bool("") )
    print( bool("你好") )
    print( True == True)
    print( True == False)
    print( bool("") == bool(0) )

注意:类型转换不是改变原来值,实际在底层是新创建了一个值。例如有整数 6 ,然后使用 str(6) 转化了一下得到 “6”,实际上这个字符串”6”是依据整数6新创建的。

5. 变量

变量,其实就是我们生活中起别名和外号,让变量名指向某个值,格式为: 【变量名 = 值】,以后可以通过变量名来操作其对应的值。

1
2
name = "武沛齐"
print(name) # 武沛齐
1
2
3
4
5
6
7
8
age = 18
name = "alex"
flag = 1 > 18
address = "北京昌平" + "沙河"
addr = "北京昌平" + "沙河" + name # "北京昌平沙河alex"

print(addr)
print(flag)
1
2
age = 18
number = 1 == 2

注意:

  • 给变量赋值 age = 18
  • 让age代指值 age=18

5.1 变量名的规范

1
2
3
4
age = 18
name = "alex"
flag = 1 > 18
address = "北京昌平" + "沙河"

三个规范(只要有一条就会报错):

  • 变量名只能由 字母、数字、下划线 组成。

  • 不能以数字开头

    1
    na9me9 = "alex"
  • 不能用Python内置的关键字

    1
    2
    def = "alex"
    break = 123

    [‘and’, ‘as’, ‘assert’, ‘break’, ‘class’, ‘continue’, ‘def’, ‘del’, ‘elif’, ‘else’, ‘except’, ‘exec’, ‘finally’, ‘for’, ‘from’, ‘global’, ‘if’, ‘import’, ‘in’, ‘is’, ‘lambda’, ‘not’, ‘or’, ‘pass’, ‘print’, ‘raise’, ‘return’, ‘try’, ‘while’, ‘with’, ‘yield’]

两个建议:

  • 下划线连接命名(小写)

    1
    2
    father_name = "wupeiqi"
    brother_age = 19
  • 见名知意

    1
    2
    3
    age = 18
    color = "red"
    current_user_name = "吉诺比利"

练习题

1
2
3
4
5
6
7
8
9
10
name = "吉诺比利"
name0 = "帕克"
name_1 = "邓肯"
_coach = "波波维奇"
_ = "卡哇伊"
1_year = "1990" # 错误
year_1_ = "1990"
_1_year = "1990"
nba-team = "马刺" # 错误
new*name = "伦纳德" # 错误

5.2 变量内存指向关系

通过学习上述变量知识让我们对变量了有了初步认识,接下来我们就要从稍稍高级一些的角度来学习变量,即:内存指向(在电脑的内存中是怎么存储的)。

情景一

1
name = "wupeiqi"

在计算机的内存中创建一块区域保存字符串”wupeiqi”,name变量名则指向这块区域。

image-20201011163312491

情景二

1
2
name = "wupeiqi"
name = "alex"

在计算机的内存中创建一块区域保存字符串”wupeiqi”,name变量名则指向这块区域。然后又再内存中创建了一块域保存字符串”alex”,name变量名则指向”alex”所在的区域,不再指向”wupeiqi”所在区域(无人指向的数据会被标记为垃圾,由解释器自动化回收)

image-20201011163344305

情景三

1
2
name = "wupeiqi"
new_name = name

在计算机的内存中创建一块区域保存字符串”wupeiqi”,name变量名则指向这块区域。new_name变量名指向name变量,因为被指向的是变量名,所以自动会转指向到name变量代表的内存区域。

image-20201011163427166

情景四

1
2
3
name = "wupeiqi"
new_name = name
name = "alex"

在计算机的内存中创建一块区域保存字符串”wupeiqi”,name变量名则指向这块区域(灰色线), 然后new_name指向name所指向的内存区域,最后又创建了一块区域存放”alex”,让name变量指向”alex”所在区域.

image-20201011163503412

情景五

1
2
num = 18
age = str(num)

在计算机的内存中创建一块区域保存整型18,name变量名则指向这块区域。通过类型转换依据整型18再在内存中创建一个字符串”18”, age变量指向保存这个字符串的内存区域。

image-20201011163528779

至此,关于变量的内存相关的说明已讲完,由于大家都是初学者,关于变量的内存管理目前只需了解以上知识点即可,更多关于内存管理、垃圾回收、驻留机制等问题在后面的课程中会讲解。

练习题

  1. 看代码结果

    1
    2
    3
    4
    alex_length = 3
    wupeiqi_length = 18
    total = alex_length + wupeiqi_length
    print(total)
  2. 按要求写代码

    1
    2
    3
    4
    5
    6
    7
    8
    # 假设age为小明的年龄
    age = 18
    # 问:已知小李比小明大3岁,计算小李年龄赋值给ming_age变量并输出。
    ming_age = age + 3
    print(ming_age)
    # 问:已知大刘比小明和小李年龄的和还要大5岁,计算大刘的年龄赋值给liu_age变量并输入。
    liu_age = age + ming_age + 5
    print(liu_age)
  3. 看代码写结果

    1
    2
    3
    4
    5
    6
    nickname = "一米八大高个"
    username = nickname

    username = "弟弟"
    print(nickname)
    print(username)
  4. 看代码写结果

    1
    2
    3
    4
    5
    6
    nickname = "一米八大高个"
    username = nickname
    nickname = "弟弟"

    print(nickname)
    print(username)
  5. 看代码写结果

    1
    2
    3
    4
    nickname = "一米八大高个"
    username = "弟弟"
    text = username + nickname
    print(text)
  6. 看代码写结果

    1
    2
    3
    4
    5
    nickname = "一米八大高个"
    username = nickname
    nickname = "弟弟"
    text = username + nickname
    print(text)
  7. 看代码写结果

    1
    2
    3
    4
    5
    6
    7
    8
    string_number = "20"
    num = int(string_number)

    data = string_number * 3
    print(data) # "202020"

    value = num * 3
    print(value) # 60

6. 注释

写代码时候,如果想要对某写内容进行注释处理,即:解释器忽略不会按照代码去运行。

  • 单行注释

    1
    2
    3
    4
    5
    6
    # 声明一个name变量
    name = "alex"

    age = 19 # 这表示当前用户的年龄

    注意:快捷点 command + ? 、 control + ?
  • 多行注释

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    # 声明一个name变量
    # 声明一个name变量
    # 声明一个name变量
    name = "alex"


    """
    多行注释内容
    多行注释内容
    多行注释内容
    """
    age = 19

7. 输入

输入,可以实现程序和用户之间的交互。

1
2
3
4
5
6
7
8
# 1. 右边 input("请输入用户名:") 是让用户输入内容。
# 2. 将用户输入的内容赋值给name变量。
name = input("请输入用户名:")

if name == "alex":
print("登录成功")
else:
print("登录失败")
1
2
data = input(">>>")
print(data)

特别注意:用户输入的任何内容本质上都是字符串。

  1. 提示输入姓名,然后给姓名后面拼接一个“烧饼”,提示输入姓名,然后给姓名后面拼接一个“烧饼”,最终打印结果。

    1
    2
    3
    name = input("请输入用户名:")
    text = name + "烧饼"
    print(text)
  2. 提示输入 姓名/位置/行为,然后做拼接并打印:xx 在 xx 做 xx 。

    1
    2
    3
    4
    5
    6
    name = input("请输入用户名:")
    address = input("请输入位置:")
    action = input("请输入行为:")

    text = name + "在" + address + action
    print(text)
  3. 提示输入两个数字,计算两个数的和。

    1
    2
    3
    4
    5
    number1 = input("请输入一个数字:") # "1"
    number2 = input("请输入一个数字:") # "2"

    value = int(number1) + int(number2)
    print(value)

8.条件语句

1
2
3
4
5
6
7
8
if 条件 :
条件成立之后的代码...
条件成立之后的代码...
条件成立之后的代码...
else:
条件不成立之后执行的代码...
条件不成立之后执行的代码...
条件不成立之后执行的代码...
1
2
3
4
5
name = input("请输入用户名:")
if name == "alex":
print("sb")
else:
print("db")

提醒:统一缩进问题(都是使用四个空格 = tab)。

1
2
3
4
5
6
name = input("请输入用户名:")
if name == "alex":
print("sb")
print("sb")
else:
print("db")

8.1 基本条件语句

  • 示例1

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    print("开始")
    if True:
    print("123")
    else:
    print("456")
    print("结束")

    # 输出结果
    开始
    123
    结束
  • 示例2

    1
    2
    3
    4
    5
    6
    print("开始")
    if 5==5:
    print("123")
    else:
    print("456")
    print("结束")
  • 示例3

    1
    2
    3
    4
    5
    num = 19
    if num > 10:
    print("num变量对应值大于10")
    else:
    print("num变量对应值不大于10")
  • 示例4

    1
    2
    3
    4
    5
    6
    username = "wupeiqi"
    password = "666"
    if username == "wupeiqi" and password == "666":
    print("恭喜你,登录成功")
    else:
    print("登录失败")
  • 示例5

    1
    2
    3
    4
    5
    6
    username = "wupeiqi"

    if username == "wupeiqi" or username == "alex":
    print("VIP大会员用户")
    else:
    print("普通用户")
  • 示例6

    1
    2
    3
    4
    5
    number = 19
    if number%2 == 1:
    print("number是奇数")
    else:
    print("number是偶数")
    1
    2
    3
    4
    5
    6
    number = 19
    data = number%2 == 1
    if data:
    print("number是奇数")
    else:
    print("number是偶数")
  • 示例7

    1
    2
    if 条件:
    成立
    1
    2
    3
    4
    print("开始")
    if 5 == 5:
    print("5等于5")
    print("结束")

练习题

  1. 提示用户输入用户名和密码,用户名等于”wupeiqi”且密码等于”uuu”就输出登录成功;否则输出登录失败。
  2. 猜数字,提示用户输入一个数字,判断数字如果大于10,就输出猜错了;否则输出猜对了。
  3. 提示用户输入一个数字,判断是否为偶数,是偶数则输出 偶偶偶数,否则输出 奇奇奇数。

8.2 多条件判断

1
2
3
4
5
6
7
8
9
10
11
if 条件A:
A成立,执行此缩进中的所有代码
...
elif 条件B:
B成立,执行此缩进中的所有代码
...
elif 条件C:
C成立,执行此缩进中的所有代码
...
else:
上述ABC都不成立。
1
2
3
4
5
6
7
8
num = input("请输入数字")
data = int(num)
if data>6:
print("太大了")
elif data == 6:
print("刚刚好")
else:
print("太小了")
1
2
3
4
5
6
7
8
9
10
11
12
13
score = input("请输入分数")
data = int(score)

if data > 90:
print("优")
elif data > 80:
print("良")
elif data > 70:
print("中")
elif data > 60:
print("差")
else:
print("不及格")

8.3 条件嵌套

1
2
3
4
if 条件A:
...
elif 条件B:
...
1
2
3
4
5
6
7
if 条件A:
if 条件A1:
...
else
...
elif 条件B:
...

模拟10086客服

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
print("欢迎致电10086,我们提供了如下服务: 1.话费相关;2.业务办理;3.人工服务")

choice = input("请选择服务序号")

if choice == "1":
print("话费相关业务")
cost = input("查询话费请按1;交话费请按2")
if cost == "1":
print("查询话费余额为100")
elif cost == "2":
print("交互费")
else:
print("输入错误")
elif choice == "2":
print("业务办理")
elif choice == "3":
print("人工服务")
else:
print("序号输入错误")

总结

  1. 什么是编码?打开文件时为什么会出现乱码?
  2. pycharm如何设置文件编码?
  3. python解释器去打开代码文件时,默认使用编码是什么?如何修改?
  4. print输入
  5. 各数据类型格式 以及 相关之间如何实现转换?
  6. 变量的命名规范
  7. 用户通过input输的内容均为字符串类型。
  8. 条件语句。

今日作业

  1. 谈谈你了解的编码以及为什么会出现乱码的现象?

  2. Python解释器默认编码是什么?如何修改?

  3. 用print打印出下面内容:

    1
    2
    3
    4
    ⽂能提笔安天下,
    武能上⻢定乾坤.
    ⼼存谋略何⼈胜,
    古今英雄唯是君。
  4. 变量名的命名规范和建议?

  5. 如下那个变量名是正确的?

    1
    2
    3
    4
    5
    name = '武沛齐'
    _ = 'alex'
    _9 = "老男孩"
    9name = "宝浪"
    oldboy(edu = 666
  6. 设定一个理想数字比如:66,让用户输入数字,如果比66大,则显示猜测的结果大了;如果比66小,则显示猜测的结果小了;只有等于66,显示猜测结果正确。

  7. 提示⽤户输入 “爸爸” ,判断⽤户输入的对不对。如果对, 提示真聪明, 如果不对, 提示你是傻逼么。

  8. 写程序,成绩有ABCDE5个等级,与分数的对应关系如下.

    1
    2
    3
    4
    5
    A    90-100
    B 80-89
    C 60-79
    D 40-59
    E 0-39

    要求用户输入0-100的数字后,你能正确打印他的对应成绩等级.

作业答案

  1. 谈谈你了解的编码以及为什么会出现乱码的现象?

    1
    2
    3
    4
    编码相当于是一个`密码本`,其中存储着文字和01010的对应关系。
    乱码的出现时因为文件的存储方式和打开方式不一致导致。另外,如何数据丢失也可能会造成乱码。
    假如:
    武,对应存储的是:100100001000000111。如果文件中的内容丢失只剩下100100001000000,则读取时候就可能出现乱码。
  2. Python解释器默认编码是什么?如何修改?

    1
    2
    Python解释器默认编码:utf-8
    在文件的顶部通过设置: # -*- coding:编码 -*- 实现修改。
  3. 用print打印出下面内容:

    1
    2
    3
    4
    ⽂能提笔安天下,
    武能上⻢定乾坤.
    ⼼存谋略何⼈胜,
    古今英雄唯是君。
    1
    2
    3
    4
    print("⽂能提笔安天下,")
    print("武能上⻢定乾坤.")
    print("⼼存谋略何⼈胜,")
    print("古今英雄唯是君。")
    1
    2
    3
    4
    5
    6
    7
    text = """
    ⽂能提笔安天下,
    武能上⻢定乾坤.
    ⼼存谋略何⼈胜,
    古今英雄唯是君。
    """
    print(text)
  4. 变量名的命名规范和建议?

    1
    2
    3
    4
    5
    6
    7
    三条规范(必须遵循,否则定义变量会报错)
    - 变量名只能由 字母、数字、下划线 组成。
    - 变量名不能以数字开头。
    - 变量名不能是Python内置关键字
    二条建议(遵循可以显得更加专业,不遵循也可以正常运行不报错)
    - 下划线命名法,多个单词表示的变量名用下划线连接(均小写)
    - 见名知意,通过阅读变量名就能知道此变量的含义。
  5. 如下那个变量名是正确的?

    1
    2
    3
    4
    5
    name = '武沛齐'
    _ = 'alex'
    _9 = "老男孩"
    9name = "宝浪" # 错误
    oldboy(edu = 666 # 错误
  6. 设定一个理想数字比如:66,让用户输入数字,如果比66大,则显示猜测的结果大了;如果比66小,则显示猜测的结果小了;只有等于66,显示猜测结果正确。

    1
    2
    3
    4
    5
    6
    7
    8
    num = input("请输入数字")
    data = int(num)
    if data > 66:
    print("大了")
    elif data < 66:
    print("小了")
    else:
    print("正确")
  7. 提示⽤户输入 “爸爸” ,判断⽤户输入的对不对。如果对, 提示真聪明, 如果不对, 提示你是傻逼么。

    1
    2
    3
    4
    5
    text = input("请输入内容")
    if text == "爸爸":
    print("真聪明")
    else:
    print("你是傻逼么")
  8. 写程序,成绩有ABCDE5个等级,与分数的对应关系如下.

    1
    2
    3
    4
    5
    A    90-100
    B 80-89
    C 60-79
    D 40-59
    E 0-39

    要求用户输入0-100的数字后,你能正确打印他的对应成绩等级.

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    score = input("请输入分数")
    data = int(score)

    if data >= 90 and data <= 100:
    print("A")
    elif data >= 80 and data <90:
    print("B")
    elif data >= 60 and data <80:
    print("C")
    elif data >= 40 and data <60:
    print("D")
    elif data >= 0 and data <40:
    print("E")
    else:
    print("输入错误")
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    score = input("请输入分数")
    data = int(score)

    if 90 <= data <= 100:
    print("A")
    elif 80 <= data < 90:
    print("B")
    elif 60 <= data < 80:
    print("C")
    elif 40 <= data < 60:
    print("D")
    elif 0 <= data < 40:
    print("E")
    else:
    print("输入错误")

day01 计算机基础和环境搭建

课程目标:让大家了解计算机基础知识并完成Python的环境搭建。

课程概要:

  • 计算机基础
  • 编程的本质
  • Python的介绍
  • Python环境的搭建

1.计算机基础

1.1 基本概念

  • 计算机的组成

    1
    2
    3
    计算机是由多个硬件组合而成,常见的硬件有:CPU、硬盘、内存、网卡、显示器、机箱、电源....

    注意事项:机械将零件组合在一起,他们之间是无法进行协作。
  • 操作系统

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    用于协调计算机的各个硬件,让硬件之间进行协同工作,以完成某个目标。
    常见的操作系统分类:
    - windows,优点:生态牛逼、工具多;缺点:略慢、收费。【个人】
    - xp
    - win7
    - win10
    ...
    - linux,优点:资源占用少、免费(很多公司的服务器上安装Linux);缺点:工具少、告别游戏。【企业的服务器】
    - centos
    - ubuntu
    - redhat
    ...
    - mac,优点:生态还行、工具差不多都有、用户体验和交互; 缺点:不能玩游戏
  • 软件(应用程序)

    1
    2
    3
    4
    5
    在安装上操作系统之后,我们会在自己电脑上安装一些常用的软件,例如:QQ、杀毒、微信...

    问题来了:这些软件是由谁开发的?是由各大公司的程序员开发的。

    以后的你肯定是写`软件`,可以把软件理解成为一大堆的代码(一篇文章)。

    image-20201021185430525

1.2 编程语言

软件,是由程序员使用 编程语言 开发出来的一大堆代码的集合。全球的编程语言有2500+多种,常见的编程语言:Java、C#、Python、PHP、C…

作文,是由小学生使用 汉语/英语/法语/日语… 写出来一大堆的文字的集合。

本质上学习编程语言就是学习他的语法,根据语法再去编写相应的软件中的功能。

  • Python语言中输出的语法规则

    1
    print("我是Alex的二大爷")
  • Golang语言中的输出的语法规则

    1
    fmt.Println("我是Alex二大爷")

1.3 编译器/解释器

编译器/解释器,就是一个翻译官,将代码翻译成计算机能够识别的命令。

1
2
3
4
5
6
7
8

A使用Python开发了一个软件 1000 B使用Golang开发了一个软件 2000

Python解释器 Golang编译器

操 作 系 统

CPU 硬盘 网卡 内存 电源 .....
image-20201021204525830

为什么有的叫解释器?有的叫编译器?

  • 解释器,实时翻译。拿到1000行代码之后,解释一句交给操作系统一句。
  • 编译器,全文翻译。拿到2000行代码之后会将他编译成一个临时文件(计算机能够识别命令),再把文件交给操作系统去读取。

Python、PHP、JavaScript、Ruby…一般称为解释型语言。

C、C++、Go、Java…一般称为编译型语言。

2.学习编程的本质

学编程本质上就是三件事:

  • 选择一门编程语言,在自己的电脑上安装此编程语言相关的 编译器/解释器。
  • 学习编程语言的语法规则,根据语法规则 + 业务背景 设计并开发你的软件(代码集合)。
  • 使用 编译器/解释器 去运行自己写的代码。

3.Python的介绍

3.1 语言的分类

  • 翻译的维度

    • 解释型语言,Python、Ruby….
    • 编译型语言,C、C++、Golang
  • 高低的维度

    • 低级编程语言,写出来的代码直接可以被计算机识别。

      1
      2
      机器语言,101 001 00001 00010 001000100010001,机器码,交给计算机去执行。
      汇编语言,MOV INC ... ,指令,交给计算机去执行。
    • 高级编程语言,写出来的代码无法直接被计算机识别,但可以通过某中方式将其转换为计算机可以识别的语言。

      1
      2
      C、C++、Java、Python、Ruby...,这类编程语言在编写代码时几乎是写英语作文。
      交由相关编译器或解释器翻译成机器码,然后再交给计算机去执行。

注意:现在基本上都使用高级编程语言。

3.2 Python

Python的创始人为吉多·范罗苏姆(Guido van Rossum)。1989年的圣诞节期间,Guido开始写Python语言的编译器。Python这个名字,来自Guido所挚爱的电视剧Monty Python’s Flying Circus。他希望这个新的叫做Python的语言,能符合他的理想:创造一种C和shell之间,功能全面,易学易用,可拓展的语言。

全球众多编程语言,为何Python可以脱颖而出成为业界炙手可热的编程语言?目前位居TIOBE排行榜第三名并且一直呈上升趋势。

image-20201021214459011 image-20201021214518950

Python如此火爆的原因如下:

  • 语法简洁 & 适合小白学习,相比较于其他编程语言Python的学习成本非常低,甚至可以让其他行业的人快速掌握编程技能,通过编程提供工作效率,例如:Excel自动化办公、文件和文件夹的处理等。
  • 类库强大,Python自诞生之初就任其自然生长,经过多年的发展,造就其在很多领域都是积累了很多方便的类库,自然也成为了运维自动化、数据分析、机器学习首选编程语言。
  • 开发效率极高,结合Python语法精炼和类库齐全的特点,所以在使用Python进行开发时可以用更少的代码完成更多的功能,大大提升开发效率。例如:Python10行代码实现的功能,用其他语言可能需要100+行才能完成。

3.3 Python的解释器种类(了解)

想要学一门编程语言:安装Python解释器、学习python语法并编写代码、使用Python解释器去执行编写好的代码。

Python在全球非常的火,很多公司都会想要来层热度。

由于Python太火了,所有就有很多的公司都开发了Python解释器(用来翻译python代码成为计算机能够识别的命令)。

  • CPython【主流】,底层是由C语言开发出来的Python解释器。
  • Jython,是由Java语言开发出来的Python解释器,方便与让Python和Java代码做集成。
  • IronPython,是基于C#语言开发出来的Python解释器,方便与让Python和C#代码做集成。
  • RubyPython,…
  • PyPy,是对CPython的优化,他的执行效率提高了。引入编译器的功能,本质上将Python代码进行编译,再去执行编译后的代码。

注意:常说的Python解释器默认指的就是CPython解释器。

3.4 CPython解释器的版本

CPython的解释器主要有两大版本:

  • 2.x,目前最新的Python2.7.18。(2020后不再维护)

    1
    Being the last of the 2.x series, 2.7 received bugfix support until 2020. Support officially stopped January 1 2020, and 2.7.18 code freeze occurred on January 1 2020, but the final release occurred after that date.
  • 3.x,目前最新的3.9.0版本(授课)。

4.环境搭建

  • Python解释器,将程序员编写的python代码翻译成计算机能够识别的指令。
    • 主流CPython
    • 3.9.0版本
  • 学习编程本质上的3件事
    • 安装 CPython 3.9.0版本解释器
    • 学习Python语法并写代码
    • 解释器去运行代码

4.1 安装Python解释器

4.1.1 mac系统

  • 去Python官网下载Python解释器(3.9.0版本)

    1
    https://www.python.org/
  • 安装

    1
    2
    3
    4
    默认Python解释器安装目录: /Library/Frameworks/Python.framework/Versions/3.9

    有bin目录下有一个 python3.9 文件,他就是Python解释器的启动文件。
    解释器路径:/Library/Frameworks/Python.framework/Versions/3.9/bin/python3.9
  • 写一个简单的Python代码并且让解释器去运行。

    1
    2
    name = input("请输入用户名:")
    print("欢迎使用NB系统:",name)

    将文件保存在:文稿/hello.py【/Users/wupeiqi/Documents/hello.py】

    接下来要让解释器去运行代码文件:

    1
    2
    3
    - 打开终端
    - 在终端输入:解释器 代码文件
    /Library/Frameworks/Python.framework/Versions/3.9/bin/python3.9 /Users/wupeiqi/Documents/hello.py
  • 【补充】系统环境变量

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    - 假设你有30个Python文件要运行
    /Library/Frameworks/Python.framework/Versions/3.9/bin/python3.9 /Users/wupeiqi/Documents/hello1.py
    ...
    /Library/Frameworks/Python.framework/Versions/3.9/bin/python3.9 /Users/wupeiqi/Documents/hello30.py

    - Python解释器的路径每次不用再写这么长。
    - 将 /Library/Frameworks/Python.framework/Versions/3.9/bin 添加到系统的环境变量中。
    - 以后再使用Python解释器去运行python代码时,就可以这样:
    python3.9 /Users/wupeiqi/Documents/hello1.py
    ...
    python3.9 /Users/wupeiqi/Documents/hello2.py

    - 如何将 /Library/Frameworks/Python.framework/Versions/3.9/bin 添加到系统的环境变量中 ?
    - 默认你不用添加,默认Python解释器在安装的过程中已经帮你添加了。
    - 自己手动想添加:
    - 打开用户目录的下的 .bash_profile 文件(.zprofile)
    - 在文件中写如下内容
    1
    2
    3
    4
    # Setting PATH for Python 3.9
    # The original version is saved in .zprofile.pysave
    PATH="/Library/Frameworks/Python.framework/Versions/3.9/bin:${PATH}"
    export PATH

4.1.2 windows系统

  • Python官网下载Python解释器

    1
    https://www.python.org/downloads/release/python-390/
  • 在自己电脑上进行安装

    1
    2
    python解释器安装目录:C:\Python39
    python解释器的路径:C:\Python39\python.exe
  • 编写一个Python代码并交给Python解释器去运行

    1
    2
    name = input("请输入用户名")
    print("欢迎使用NB系统",name)

    并将文件保存在:Y:\hello.py

    怎么让解释器去运行写好的代码文件呢?

    1
    2
    - 打开终端
    - 在终端输入:解释器路径 代码路径
  • 优化配置(让以后操作Python解释器去运行代码时候更加方便)

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    - 写了30个Python代码,想要使用解释器去运行。
    C:\Python39\python.exe Y:\hello1.py
    C:\Python39\python.exe Y:\hello2.py
    ...
    C:\Python39\python.exe Y:\hello10.py

    - 然你以后可以方便的去运行代码,不用再写Python解释器所在的路径。
    只要你将 C:\Python39 路径添加到系统的环境变量中。以后你在终端就可以:
    python.exe Y:\hello1.py

    - 如何将 C:\Python39 添加到环境变量呢?【默认在解释器安装的时已自动添加到环境变量了】

4.2 安装Pycharm编辑器(mac)

帮助我们快速编写代码,用Pycharm可以大大的提高咱们写代码的效率。 + 用解释器去运行代码。

1
print("asdfasdf")
  • 下载Pycharm

    1
    https://www.jetbrains.com/pycharm/
  • 安装

  • 快速使用,写代码+运行代码

  • 破解Pycharm(专业版)

4.3 安装Pycharm编辑器(win)

  • 下载Pycharm

    1
    https://www.jetbrains.com/pycharm/download/other.html
  • 安装

  • 快速使用:编写代码 + 运行代码

  • 破解Pycharm(专业版)

总结

  1. 了解硬件 & 操作系统 & 软件(应用系统)之间的关系。
  2. 了解常见的操作系统都有哪些。
  3. 了解编译器和解释器的区别和作用。
  4. 编程语言进行分类
  5. 了解Python解释器的种类
  6. 了解CPython解释器的版本
  7. 学会如何安装Python解释器。
  8. 了解什么环境变量的作用。
  9. 了解Python和Pycharm的区别。

作业

  1. 简述硬件 & 操作系统 & 软件(应用系统)之间的关系。
  2. 列举常见的操作系统都有哪些。
  3. 简述编译器和解释器的区别和作用。
  4. 编程语言进行分类
  5. Python解释器的种类有哪些?
  6. CPython解释器的版本有哪些?你现在用的是哪个版本?
  7. 系统环境变量的作用是什么?
  8. Python和Pycharm的区别是什么?

day01 作业答案和讲解

  1. 简述硬件 & 操作系统 & 软件(应用系统)之间的关系。

    1
    2
    3
    计算机是由多个硬件组成,例如:CPU、硬盘、内存、网卡、主板等。
    操作系统则是安装在计算机上用于协调各硬件进行配合工作的,他将用户的一些行为转化为计算机能够识别的命令,并协调各个硬件配合完成相关命令。
    软件,是由程序员开发并安装在操作系统的程序(本质上是一大堆的代码),例如:微信、QQ、金山毒霸等。
  2. 列举常见的操作系统都有哪些。

    1
    2
    3
    4
    常见的操作系统有三类:
    - win:win7、win10、xp 等
    - linux:centos、ubuntu、redhat 等。
    - mac:Catalina、Mojave、Sierra 等。
  3. 简述编译器和解释器的区别和作用。

    1
    2
    3
    编译器和解释器的作用是将各编程语言的代码进行翻译,从而使得计算机能够识别并执行。
    编译器,全文翻译,将代码编译成`临时文件`,再执行临时文件。
    解释器,实施翻译,对代码实行边解释边执行。
  4. 编程语言进行分类

    1
    2
    解释的角度:编译型和解释性。
    高低的角度:高级编程语言和低级编程语言。
  5. Python解释器的种类有哪些?

    1
    CPython、Jython、IronPython、pypy等
  6. CPython解释器的版本有哪些?你现在用的是哪个版本?

    1
    2.x和3.x,目前课堂上使用的是最新的3.9.0版本。
  7. 系统环境变量的作用是什么?

    1
    在将某个目录添加至环境变量后,如果在终端想要去运行此目录下的文件,则只需要输入文件名即可(无需再写前缀),系统会自动读取环境变量中的路径并自动拼接。
  8. Python和Pycharm的区别是什么?

    1
    2
    Python是解释器,用于将Python解释成计算机能够识别的命令。
    Pycharm是IDE(类似编辑器),用于方便快速的编写Python代码并实现运行Python代码的一个工具。

学习须知

在正式开始学习前,带大家先来了解下路飞学城的授课和学习模式,这是结合众多学员的学习感受并根据我们多年课程开发经验制定出来,让你可以快速并高效的掌握授课内容。

1. 授课须知

  • 模块闯关式教学,每个模块都【笔试】&【线上面试】的考核,只有考核通过之后才能开通下一模块进行学习,以保证学员掌握每个阶段的知识点。

  • 以天为单位授课和学习,学员需每天完成对应的任务,包括:知识点学习、练习题 和 每天的作业。
    注:练习题和作业都有视频讲解,学员需自己独立完成之后再根据视频讲解来核对自己的答案正确与否。

  • 自主项目研发,为了培养学员独立开发项目能力,在学习期间指导学员自己开发出3个项目(除授课项目以外),毕业之后直接可以胜任企业安排的开发任务。

2. 建议学习方式

  • 学习笔记,在观看视频学习的过程中,可以结合老师讲解的知识点做好自己的课程笔记,便于回顾和复习。在每个模块结束时,可根据自己课堂笔记进行复习(不要再重新观看视频),提高学习效率。

  • 课堂练习 / 作业题,自己独立完成之后,再看老师的讲解视频,通过对比了解的自己的不足。

  • 模块总结,在每个模块结束时,回顾当前模块中所有知识点并将其整理成一个思维导图,回顾知识点的同时也可以了解所有知识点关联关系,可帮助加深记忆。

  • 错题本,将自己所有的错题都记录下来,在模块结束时,着重去复习以前做过的错题。

  • 单词本,编程会涉及到一些英语单词,英语薄弱的同学建议整理一份单词本,每天早上和晚上看一遍。

3. 笔记

作为程序员平时编写笔记和开发文档时一般都使用Markdown格式,为了让你能成为更加专业的程序员,所以建议大家的课程笔记都要使用Markdown格式来编写。

Markdown格式的文档可以用很多工具来编写,此处建议推荐大家使用 Typora 工具。

3.1 下载Typora

官网地址:https://www.typora.io/

image-20201011095336789

3.2 Typra大纲视图

image-20201011125657758

image-20201011125909612

3.3 标题

在文档中可以快速实现标题的编写,基本结构为:

  • # 内容,一级标题
  • ## 内容,二级标题
  • ### 内容,三级标题

注意:#符号和文本中间必须有空格。

image-20201011130339602

image-20201011130623276

3.4 引用

在文档中想要让文本内容以 引用 方式展示,可通过 > 内容 格式实现。如:

1
> 计算机一门xx学科

image-20201011131100278

3.5 列表

想要以列表的形式展示数据,可以通过 - 内容 格式实现,如:

1
2
3
4
5
- CPU
- 硬盘
- 普通硬盘
- 固态硬盘
- 主板

image-20201011131441988

3.6 代码

想要在文档中集成代码时,可以通过 ` 符号包裹实现,如:

1
2
3
4
5
6
7
​```Python
name = input("请输入用户名:")
if name == "wupeiqi":
print("登录成功")
else:
print("登录失败")
​```

注意:第一行写上Python表示代码会按照Python的语法进行高亮显示(也可以是Java等其他语言)。

image-20201011131931183

3.7 图片

想要在文档中显示图片时,可以通过 ![](图片路径)来展示,但这种编写方式比较麻烦,因为需要自己录入图片的路径,所以一般不会这么写入图片,而是选择直接 复制图片 或 截图 直接粘贴到文档中,Typora可以自动帮助我们生成图片格式。

为了将文档中的管理文档中的图片,防止因为删除导致图片在文档中丢失,所以一般会在Typora中设置成将文档中的图片都复制到制定目录。

在Typora中找到设置页面,并按照图片先进行如下设置:

image-20201011132632820

那些接下来就可以直接将图片粘贴到文档中且Typora自动将图片保存至文档根目录的 assets 文件夹中。

image-20201011133122518

上述就是我们Typora最常见的功能,其他更多功能在后续课程中会逐步交给大家。

总结

希望大家在了解授课模式之后,按照建议方式进行学习,早日学成!!!

区块链金融简介

什么是金融

金融是指涉及资金的流动、管理和运作的各种活动和制度。它包括了借贷、投资、储蓄、保险和资本市场等方面的内容。金融的主要功能是将资金从有盈余的一方(如储户、投资者)转移到有资金需求的一方(如企业、政府、个人),以促进经济活动和增长。

具体来说,金融的定义包括以下几个方面:

  1. 资本的配置:金融体系通过银行、证券市场和其他金融机构,将资金从储蓄者和投资者转移到需要资金的企业和个人。
  2. 风险管理:通过保险、期货、期权等金融工具,企业和个人可以管理和对冲各种风险,如市场风险、信用风险和利率风险。
  3. 支付和结算系统:金融机构提供支付和结算服务,使得经济交易能够顺利进行。例如,银行提供的支票、信用卡和电子支付服务。
  4. 金融中介:银行、保险公司、证券公司等金融中介机构在资金的借贷和投资过程中起到桥梁作用。
  5. 监管和政策:政府和监管机构通过法律、法规和政策,确保金融体系的稳定和健康运作,保护投资者和储户的权益。
  6. 创造和管理货币:中央银行和其他金融机构通过货币政策和信贷创造管理货币供应和利率,从而影响经济活动。

金融不仅涉及个人和企业的财务管理,还对整个经济体系的稳定和发展起着关键作用

中心化金融特点

  • 账户管理
  • 交易审查
  • 手续费作为利润
  • 监管合规
  • 不透明
  • 基于信任

去中心化金融

起点:2008年11月1日中本聪发布比特币白皮书

优势:

  • 效率 不仅指在支付方面 特指有第三方相互之间的协作
  • 开源
  • 可编程性

CeFi VS DeFI

  • 账户的创建和使用
  • 业务流程透明度
  • 资金监管

稳定币:USDT/USDC/BUSD

深度解析全球稳定币2023现状与监管:https://www.qianba.com/news/p-441745.html

defi研报:https://foresightnews.pro/article/detail/61401

 由于加密货币是波动幅度极大的资产,稳定币是专为维持固定价格而设计。稳定币是追踪法币或其他资产价值的数位资产。例如,投资者可以购买与美元、欧元、日圆甚至黄金挂钩的稳定币。

  目前市场上的稳定币有三大种类,包括法币担保、加密货币担保和演算法稳定币。法币担保的稳定币可以美元或英镑等法币作为储备。例如,每一枚稳定币都由作为抵押品的1美元提供担保。不过,若属于以加密货币支持的稳定币则不会使用美元或其他货币作储备,而是将加密货币作为抵押品,并使用智能合约来管理铸造和销毁,用户可以独立稽核合约。至于演算法稳定币,实际上是没有“储备”的,完全只是追踪相关法币的表现,而且由演算法和智能合约来管理发行代币的供应量,当稳定币的价格低于它所追踪的法币价格时,演算法稳定币系统就会减少代币供应量。这可以透过锁定质押、销毁或回购来完成。当价格超过法币的价值时,新的代币将会进入流通,以此来降低稳定币的价值。

  对投资者来说,稳定币是加密币市场上功能最广泛工具,因稳定币具有以区块链为基础的优势,有人认为比法币更方便,且稳定币可对冲持有的加密币组合,有助降低交易成本。

阅读全文 »