学完今天我保证你自己可以至少写50行代码

明天,还在等你


回顾day1

小练习1:

小练习2:

小练习3:


好了激情的的一天已经过去了正式开始,day2的讲解


        Day2 目录:

格式化输出

掌握字符串格式的方法

基本运算符

掌握基本的几种运算符

流程控制之

if...else...

理解和掌握基本的流程控制

掌握缩进的重要性

考试成绩小游戏

流程控制之for循环

for循环语句

掌握break continue 控制语句

能独自写出作业的小游戏


格式化输出篇


格式化输出
    现在有一个练习,问用户的姓名、年龄、工作、爱好,然后打印成以下格式
 
-------------------- info of Dayang -------------------
Name  : Dayang
Age  : 18
Job  :student
Hobbit: girl
---------------------- end ---------------------
怎么实现呢?你会发现,用字符拼接的方式还难实现这种格式的输出,所以一起来学一下新姿势吧
 
  咱们呢只需要把要打印的格式先准备好,由于里面的一些信息时需要用户输入的,你没有办法预先知道,因此可以先放置一个占位符,再把字符串里的占位符与外部的变量做一个映射的关系就好啦
name = input("Name:")
age = input("Age:")
job = input("Job:")
hobbie = input("Hobbie:") info = f'''
-------------------- info of {name} ----------------
Name :{name}#代表你用户在name输入的内容
Age :{age}#代表age
Job :{job}#代表job
Hobbie :{hobbie}#代表hobbie
------------------- end -----------------
'''
print(info)
#此时注意:有的同学可能不理解{}的意思还有f是什么意思
在python原先的版本中的占位符使用
%s 是字符串占位符
%d 是数字占位符
%f 是浮点数占位符
现在版本里这样带%号的也是可以使用的但是看着是比较乱的,我建议大家使用f{加用户使用的变量名}
这个f的作用我的理解是调用工具让{}中的变量有意义,如果没有加f,python并不认为{}里的有意义,会报错(大家可以尝试)
这样更加清晰的看出用户在那个变量里输入。

基本运算符篇


 
运算符

 计算机可以进行的运算有很多种,可不只加减乘除这么简单,运算按种类可分为算数运算、比较运算、逻辑运算、赋值运算、成员运算、身份运算、位运算、今天我们暂只学习算数运算、比较运算、逻辑运算、赋值运算。

一 .算数运算
a,b=10,20#假设变量a = 10 ,b = 20
a + b #"+"运算,输出30
a - b #"-"运算,输出-10
a * b #"*"运算,输出200
b / a #"/"运算,输出2
b % a #"取模"运算,求余数用 输出0
a ** b #"幂"运算,输出100000000000000000000十的二十次方
b // a #"取整除"运算,例如 20//10输出2 20.0//10.0输出2.0 二 .比较运算
a,b = 10,20#假设变量
a == b#比较是否相等 此时返回值为False
a != b#比较是否不相等 此时返回值为True
a <> b#跟!=类似
a > b #比较是否大于 此时返回False
a < b #比较是否小于 此时返回True
a >= b #比较是否大于等于 此时返回False
a <= b #比较是否小于等于 此时返回True 三 .赋值运算
a,b = 10,20#假设变量
c = a+b #赋值运算 给C赋值
c += a #相当于 c = c+a
c -= a #相当于 c = c-a
c *= a #相当于 c = c*a
c /= a #相当于 c = c/a
c %= a #相当于 c = c%a
c **= a #相当于 c = c**a
c //= a #相当于 c = c//a 四 .逻辑运算                     假设 a = 10 , b =20
逻辑符 描述 实例

and

判断多个条件为真时,返回真

a>10 and b>10

结果为 False

or

判断多个条件任意为真时,返回真 a>10 or b>10 结果为True

not

取反 not a>b 结果为True

a,b,c = (10,20,5)
#大家猜想练习一下,当a,b,c等于10,20,5时一下运算的结果是什么样子的
a>b and a<c or b>c and a>b and a>c
False
a>b and a<c or b>c and a>b or a>c
True
(a>b and a<c or b>c and a>b) and a>c
False
根据练习大家可以理解为什么得到这样的结果吗? 在优先级运算方向:and > not >or 先判断优先级高的再判断低的 如果有括号先算括号

流程控制之if...else...篇


流程控制怎么理解?

  假如把写程序比做走路,那我们到此为止,一直走的都是直路,还没有遇到分岔口,然而在现实生活,你遇到了

分岔口,然后你决定走哪一条路必然是有冬季的,你要判断哪条岔路是你真正要走的路,如果我们想让程序也能处理

这样的判断怎么办?

  其实很简单,只要在程序里预设一些条件判断语句,满足那个条件,就走那条路,这个过程就叫流程控制。

if...else... 语句:

单分支
if 条件:
满足条件后要执行的代码 #例如:
salary = 8000
if salary < 8000:#:冒号,是固定语法
print("你挣得太少了,长的又不好看,找对象又找不到,建议多学把妹技巧")
#如果你的工资少于8000就会打印print,这句话:你挣得太少了,长的又不好看,找对象又找不到,建议多学把妹技巧双分支
if 条件:
满足条件执行代码
else:
不满足执行这段代码
#例如:
salary = 8000
if salary < 8000:
print("你挣得太少了,长的又不好看,找对象又找不到,建议多学把妹技巧")
else:
print("恭喜你满足了在大城市的基本收入")

Python缩进详解:

  1.顶级代码必须顶行写,即如果一行代码本身不依赖于任何条件,那它

必须不能进行任何缩进

  2.同一级别的代码,缩进必须一致

  3.官方建议缩进4个空格(一个Tab键也是4个空格),如果你想称霸武林,唯你独尊,两个也不是不可以

if  循环之多分支

if 条件:
满足条件执行代码
elif 条件:
上面条件不满足就走这个
elif 条件:
上面条件不满足就走这个
elif 条件:
上面条件不满足就走这个
else:
上面所有条件都不满足就走这段

      做一个简单的猜年龄小游戏吧

age_of_Dayang = 18
guess = int(input("请输入你的猜想吧:"))
# 此处是让用户进行输入,int()是为了保证输入为整数,然没有办法与age_of_Dayang = 18进行对比
if guess > age_of_Dayang:
print("我有那么老吗?不开心")
elif guess < age_of_Dayang:
print("有点小了呢,猜大点试试")
else:
print("恭喜你,猜对了")#因为此题只有三种情况>,<,=,所以直接else输出即可,若还有条件继续elif:

  再来做一个匹配成绩的小程序吧,成绩有ABCDE,5个等级,与分数的对应关系如下.

A 90-100
B 80-89
C  60-79
D 40-59
E 0-39
mark = int(input("妈妈:快告诉我你这次的成绩吧\n 昂,咱们家的宝贝:"))#\n是换行的意思,增加点娱乐效果,不过要真是D,E也恐怕是悲剧了
if mark > 90:
print("A")
elif mark > 80:
print("B")
elif mark > 60:
print("C")
elif mark > 40:
print("D")
else:
print("E")

流程控制之循环for篇


为什么要用到循环

  在上面的判断猜测过程中你很难一次就猜到,如果没猜对还要重新在启动程序。很麻烦

循环需要指定一个结果或者明确循环的次数这样就方便了很多,今天讲解for循环

for循环:

  需要指定循环次数

#例如 
for i in range(10)
  print(i)
#输出结果
0
1
2
3
4
5
6
7
8
9
#for... in...是固定语法
#range(10)从0到10的一个区间,range(10) 也可以写成 range(0,10),但不会循环到10,他其实可以看作是一个列表
# i 是一个临时变量,在区间range(10)中,每一次循环都不一样

改进猜年龄小游戏:

#咱们定规则,让它可以循环猜三次
age_of_Dayang = 18
for i in range(0,3):
guess = int(input("输入你的猜想吧:"))
if guess > age_of_Dayang:
print("我有那么老吗?不开心")
elif guess < age_of_Dayang:
print("有点小了呢,猜大点试试")
else:
exit("恭喜你,猜对了")#如果一下就猜对了直接exit退出程序

for 循环 

输出0到100的奇偶数(包括100)

(可以通过%取模的方式进行整除,咱们定义它让他整除2来判断奇偶数)

for j in range(0,101):
if j%2 ==0:#代表是偶数,i 是可以变的这个题咱们用j临时变量
print(f"{j}是偶数")
else:
print(f"{j}是奇数") 0是偶数
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是奇数
38是偶数
39是奇数
40是偶数
41是奇数
42是偶数
43是奇数
44是偶数
45是奇数
46是偶数
47是奇数
48是偶数
49是奇数
50是偶数
51是奇数
52是偶数
53是奇数
54是偶数
55是奇数
56是偶数
57是奇数
58是偶数
59是奇数
60是偶数
61是奇数
62是偶数
63是奇数
64是偶数
65是奇数
66是偶数
67是奇数
68是偶数
69是奇数
70是偶数
71是奇数
72是偶数
73是奇数
74是偶数
75是奇数
76是偶数
77是奇数
78是偶数
79是奇数
80是偶数
81是奇数
82是偶数
83是奇数
84是偶数
85是奇数
86是偶数
87是奇数
88是偶数
89是奇数
90是偶数
91是奇数
92是偶数
93是奇数
94是偶数
95是奇数
96是偶数
97是奇数
98是偶数
99是奇数
100是偶数

嵌套循环(嵌套循环是很重要的哦)

小项目:打印一栋楼的房间号,假设楼层有5层,每层有9个房间

(打印的格式固定为:x层-x0x室)

for i in range(1,6):#楼层5层
print(f"---------{i}层----------")#有一个分解看着更加清晰明了
for j in range(1,10):#房间号1-9
print(f"L{i}-{i}0{j}室")#打印格式
#结果
---------1层----------
L1-101室
L1-102室
L1-103室
L1-104室
L1-105室
L1-106室
L1-107室
L1-108室
L1-109室
---------2层----------
L2-201室
L2-202室
L2-203室
L2-204室
L2-205室
L2-206室
L2-207室
L2-208室
L2-209室
---------3层----------
L3-301室
L3-302室
L3-303室
L3-304室
L3-305室
L3-306室
L3-307室
L3-308室
L3-309室
---------4层----------
L4-401室
L4-402室
L4-403室
L4-404室
L4-405室
L4-406室
L4-407室
L4-408室
L4-409室
---------5层----------
L5-501室
L5-502室
L5-503室
L5-504室
L5-505室
L5-506室
L5-507室
L5-508室
L5-509室

for嵌套循环(练习)

要求:如上面的练习,还是打印楼层的小程序,需求改了,遇到第三层时不打印任何房间号,告诉用户三层还在装修,如果进入四层404房间则进入鬼屋中断4层循环

下面介绍这个小程序的主角:break & continue 

continue:只要程序一遇到continue本次循环就不再继续了,跳转下一次循环

break:只要程序遇到break,就会结束当前这个循环,如果是多层嵌套循环,只结束当前这一层的循环

咱们来写一下这个程序

for i in range(1,6):#楼层5层
if i == 3:#如果三层,跳过此层循环
print("三层还未装修")
continue
print(f"---------{i}层----------")#有一个分解看着更加清晰明了
for j in range(1,10):#房间号1-9
if i == 4 and j == 4:
print("进入鬼屋中断四层")
break
print(f"L{i}-{i}0{j}室")#打印格式 #输出结果
---------1层----------
L1-101室
L1-102室
L1-103室
L1-104室
L1-105室
L1-106室
L1-107室
L1-108室
L1-109室
---------2层----------
L2-201室
L2-202室
L2-203室
L2-204室
L2-205室
L2-206室
L2-207室
L2-208室
L2-209室
三层还未装修
---------4层----------
L4-401室
L4-402室
L4-403室
进入鬼屋中断四层
---------5层----------
L5-501室
L5-502室
L5-503室
L5-504室
L5-505室
L5-506室
L5-507室
L5-508室
L5-509室

好了今天咱们的学习到此为止,明天加油

多练习今天课上的小程序  (抄没有意义,一定要自己写出来)

本节练习

1.你的工资决定了你的态度,写一段程序,读取用户的输入的工资,根据工资打印出相应的文字

月薪1000:老板,我*****

月薪2000:老板啥也不是

月薪5000:老板给的待遇不是很好要不要辞职

月薪1万:老板教育我的有点问题,我也不说话

月薪2万:老板说啥就是啥吧,给钱就行

月薪3万:老板说得对,我错了

月薪5万:996就像呼吸一样自然

月薪10万:公司就是我家

2.做一个程序让用户分别输入三个数字,判断三个数字中最大值并输出。

num1 = int(input("第一个数字"))

num2 = int(input("第二个数字"))

num3 = int(input("第三个数字"))

最新文章

  1. PLSQL Developer 连接oracle(64) (instantclient)错误及解决方案
  2. jquery根据name属性查找
  3. ActiveMQ实现负载均衡+高可用部署方案
  4. configure: error: no acceptable C compiler found in $PAT 的解决方案
  5. Redis安装和使用
  6. jquery学习笔记---this关键字
  7. 网站tomcat配置
  8. 面向侧面的程序设计AOP-------《一》概述
  9. 使用WMIC永久设置你的环境变量
  10. 将svn添加到系统服务
  11. Web请求响应简单整理
  12. VM 启动时报错:Failed to lock the file
  13. 7 -- Spring的基本用法 -- 8...
  14. javascript-Blob文件对象
  15. Delphi Length函数
  16. 重载(overload),覆盖/重写(override),隐藏(hide)
  17. 还原SQL SERVER系统库
  18. codeforces 895B XK Segments 二分 思维
  19. Java 类文件结构
  20. ARTS Challenge- Week 1 (2019.03.25~2019.03.31)

热门文章

  1. 201771010113 李婷华 《面向对象程序设计(Java)》第十一周总结
  2. RabbitMQ的发布订阅模式(Publish/Subscribe)
  3. [hdu3484]枚举
  4. Python自动生成100以内加减乘除混合运算题
  5. javaWeb手动分页步骤
  6. SDWebImage 原理及使用问题
  7. 【雕爷学编程】Arduino动手做(63)---TCS3200D颜色识别传感器
  8. express.static设置缓存
  9. ArrrayList底层代码的实现
  10. BZOJ 1070 拆点 费用流