print()函数
print (‘’)让程序无需理解,原样输出引号中的内容。
print()程序需要读懂括号里的内容(只能读懂数字和变量、以及运算符)。
我们先试试在控制台打印你好
# 这段程序会报错
print(你好)
注: #后面的东西都会变成注释,相当于告诉python,#后面的这一段文字是给程序员自己看的,不要把它当作是程序去运行。
因为python并不知道你好是什么东西,它会把你好
当作是一个变量,但是发现没有这个变量,所以它就开始抱怨了(name ‘你好’ is not defined),意思是你好这个变量你没有定义过,我也不知道是啥,我没有办法给你打印。
至于变量是什么东西,我后面告诉你们。
那我们现就让python打印’你好’两个字,我们希望python也别问你好
是什么东西了,别试着去理解,直接给我打印就完事了,那你加上单引号就可以。
print('你好')
如果是数字,python是能够理解的,可以不加引号,但是你说你要打印‘鸡泥钛镁’,鬼知道是什么东西(反正我都不懂,更别说python了),麻烦加上引号,否则程序理解不了肯定给你报错。
print(123)
另外表达式python也是直接能够理解的,什么叫表达式呢?比如3+2就是一个表达式,其中+号称为运算符,之后都会学的。
试一试,看看打印出来的结果是什么
print(3+2)
作业:
在控制台打印你喜欢的运动(或者人)
在控制台打印520
用python打印出520-99的结果(不要自己去计算,让程序计算)
在控制台打印student
扩展(自学)
(用的不多,所以了解)
如果要换行打印怎么办呢?试一试下面的代码。
print('老板、来两斤瓜')
print('对了,老板,你这瓜')
print('保熟吗?')
因为每一个print()
执行完成之后默认会输出一个换行。
你如果觉得写这么多print()
太累,那我可以再告诉你一种方法
用三引号包裹的字符串是可以换行的。
print('''老板、来两斤瓜,
对了,老板,你这瓜,
保熟吗?
''')
有同学说,我就多写几个print就行了,我不嫌麻烦,我懒得学习三引号的这种方法
那我就布置一个任务给你
任务:用python打印一只猫
看到这个作业是不是有点懵,开玩笑的,我提供代码给你们,你们运行之后感受一下吧
print("""
/\_/\
( o.o )
> ^ <
/ \
/ \
| |
\ /
\_____/
| |
|___|
""")
在这个任务中,应该能明白吧,这里用三引号会方便很多,每个知识点都是有它存在的意义的,不会白学的。
数据类型
在python中,数据类型分为整数int、浮点数float、字符串str
整数应该好理解,56就是一个整数
带小数点的数字就是浮点数,23.4就是一个浮点数
带引号的就是字符串,’hello’就是一个字符串
如果你实在判断不出来,可以用type()函数来判断数据类型,但是注意,判断完了之后,必须要打印出来我们才看得见
# int
print(type(56))
# float
print(type(23.4))
# str
print(type('hello'))
课堂作业:
用python分别打印66、66.0、六六的类型(注意字符串要加引号)
变量
概念
假如你去了一趟超市,买了很多你喜欢吃的东西回来,有瓜子,有糖,有水果,你没有办法马上全部吃完,你希望能找一些盒子先放起来,等到先吃的时候再吃。但是为了防止我们想吃的时候找不到会饿死,你得找很多标签贴在盒子上,然后把瓜子放在瓜子盒里,把糖放在糖盒里,把水果放在水果盒子里。
同样,在Python的世界里,我们经常会接收到各种数据,这些数据需要找盒子来保存起来,保存起来不算完,要用的时候我们还得记得是放在哪个盒子里的。
这些盒子就叫做变量,盒子上的标签纸就叫做变量名。
变量名命名规则
变量名通常由字母,数字,下划线组成;
数字不能作为变量名开头;
不能以python中的关键字命名;
变量名要有意义;
总结来说,变量里装的是什么东西,变量名就叫什么,一般用英文命名,不会英文就用拼音代替就完事
赋值语句
那怎么把东西放到盒子里呢?那就要通过赋值语句=
注意在python中,=
代表赋值而不是等于,==
才表示等于的意思
赋值就是把右边的东西装到左边的盒子里。
name = '小王'
print(name)
我把字符串’小王’放到一个名叫name的变量里
想一想,如果依次将两个东西装进同一个’盒子‘里,会怎么样。
name='小王'
name='小明'
print(name)
被多次赋值时,变量只会储存最新一次的赋值。
也就是说,变量是可以重新被赋值的,所以知道为什么要叫做变量了吗?因为变量是可以被改变的
相当于如果盒子里已经有东西了,我想再放一个新的东西,不好意思,一个盒子只能放一个东西,如果你要放新的东西进去,那么之前的东西就没了,这也就是变量值的覆盖。
课堂作业:
将’张三’放在一个名为student的变量里,然后打印变量的值
将800放在一个名为money的变量里,然后打印变量的值
上节课不是讲了如何去看数据的类型吗?
我们这次想把数据放到变量里,然后去看变量的类型,其实实际上看的是变量的值的类型
x = 2
y = 1.0
z = '你好世界'
print(type(x))
print(type(y))
print(type(z))
课堂作业:
将55,‘55’,55.0分别放在名为a、b、c的变量中,然后查看变量a、b、c的数据类型分别是什么。
扩展知识:
Python语言的特色,不需要类型声明,通过赋值语句,就可以定义变量,变量的类型由赋值的结果决定。😎
input()函数
使用input()可以接受用户的输入,input() 的括号里填写对用户的提示。
当然,你接收的用户输入数据一定要找个地方放起来,还记得我们刚才学过的变量吗?我们需要将input()接收到的用户输入数据通过赋值语句放到变量中。
再举个通俗一点的列子,你爸说:“小明啊,你这次考试考得不错,我给了买了目前最快的显卡”,但是你说:“好的,我收到了,但是我没地儿放了”,那你爸只能将显卡扔了。所以数据如果不保存在变量中,就会丢失。
guess_number = input('请输入0到100之间的整数:')
print(guess_number)
课堂作业:
通过刚才学习的type()函数,看一下上述代码中,guess_number变量的值是什么类型?
注意:
通过input接收的数据,都是字符串类型。
字符串拼接
字符串可以通过+号连接起来。
name = input('请输入你的名字:')
print('你好!'+ name)
课堂作业:
礼貌询问用户的名字,打印出“欢迎来到酒馆,XXX(用户的名字),请问要买点什么?”
数据类型转换
str()
将其他类型转换为字符串。int()
将其他类型转换为整型。float()
将其他类型转换为浮点数
str()
qian = 500
# 看一下qian是什么类型的
print(type(qian))
# 将qian的类型转换为字符串,转换完了之后记得再放回原变量
qian = str(qian)
# 再看看qian是什么类型的
print(type(qian))
int()
qian = '500'
# 看一下qian是什么类型的
print(type(qian))
# 将qian的类型转换为整数,转换完了之后记得再放回原变量
qian = int(qian)
# 再看看qian是什么类型的
print(type(qian))
注意:
只有内容是整数或浮点数的字符串,才可以被强制转换为整数或浮点数。
试一试,以下代码会报错
print(int('你好世界'))
浮点数强制转换为整数时,会直接丢掉小数部分,不是四舍五入。
print(int(6.8))
课堂作业:
- 请用户输入他的年龄,把用户输入的数据转换为整数类型之后,再存入age变量。
- 补全代码
name1 = '张三' action = 520 name2 = '李四' # 要求用字符串的拼接实现,打印出张三520李四 print(name1 + )
运算符
算术运算符
算术运算符:也叫数学运算符,主要包括加、减、乘、除、取余(求模)等
运算符 | 作用 |
---|---|
+ | 求和 |
- | 求差 |
* | 求积 |
/ | 求商 |
% | 取模(取余数),开发中经常用于作为某个数字是否被整除 |
案列:将用户输入的摄氏温度转换为华氏温度(公式f = 9 / 5 * c + 32,f是华氏温度,c是摄氏温度)
c = float(input('请输入华氏摄氏度:'))
f = 9 / 5 * c + 32
print('转换为摄氏度是:' + str(f))
课堂练习:
请用户输入自己有多少岁,然后我们帮其计算出他已经出生了多少天。(一年就当作365天)
BMI计算器
收集用户的体重和身高,然后计算出BMI值
BMI值的计算公式为:BMI=体重(公斤)除以身高(米)的平方
赋值运算符
运算符 | 作用 |
---|---|
+= | 加法赋值 |
-+ | 减法赋值 |
*= | 乘法赋值 |
/= | 除法赋值 |
%= | 取余赋值 |
a = 3
a = a + 5
print(a)
# 用赋值运算符实现
a = 3
a += 5
print(a)
比较运算符
使用场景:比较两个数据大小、是否相等,根据比较结果返回一个布尔值(True / False)
运算符 | 作用 |
---|---|
> | 左边是否大于右边 |
< | 左边是否小于右边 |
>= | 左边是否大于或等于右边 |
<= | 左边是否小于或等于右边 |
== | 左右两边值 是否相等 |
!= | 左右值是否不相等 |
练习:判断以下比较运算之后的结果
a = 2
print(a > 5)
print(a >= 2)
print(a == 2)
print(a != 2)
逻辑运算符
使用场景:可以把多个布尔值放到一起运算,最终返回一个布尔值
符号 | 名称 | 日常读法 | 特点 | 口诀 |
---|---|---|---|---|
and | 逻辑与 | 并且 | 符号两边有一个假的结果为假 | 同真为真,一假则假 |
or | 逻辑或 | 或者 | 符号两边有一个真的结果为真 | 同假为假,一真则真 |
not | 逻辑非 | 取反 | true变false false变true | 真变假,假变真 |
A | B | A && B | A || B | !A |
---|---|---|---|---|
false | false | false | false | true |
false | true | false | true | true |
true | false | false | true | false |
true | true | true | true | false |
逻辑运算符优先级: not> and > or
条件判断语句
单分支
如果条件成立的话,执行以下代码,否则执行另外的代码
所以条件判断语句也被称为分支语句
score = input('请输入你这次Python考了多少分(0-100):')
if score >= 60:
print('你及格了')
else:
print('唉,得加油了')
思考:
上面的程序为什么会报错,应该怎么修改。
提示:字符串不可以和数字进行比较,除非你把字符串转换为数字类型
课堂作业:
- 询问用户的年龄和姓名,如果年龄小于10,打印欢迎你小孩哥xxx,如果年龄是10-20岁,打印欢迎你小兄弟xxx,如果年龄大于20,打印欢迎你小老哥xxx。
提示:年龄是做判断的条件,应该是整数类型,姓名是用来拼接的,应该是字符串类型。
逻辑运算
在做条件判断的时候,往往会用到逻辑运算符
案例一:
让用户输入用户名和密码,如果用户名和密码同时都对(正确的账号是zhangsan,密码:123456),那么就提示用户登录成功
username = input('请输入用户名:')
password = input('请输入密码:')
if username=='zhangsan' and password=='123456':
print('密码正确')
else:
print('密码错误')
and就是逻辑运算符,表示左右两边的条件都满足才行,口诀同真为真,一假则假
,能理解一点了吗?
现在应该再写一个或的逻辑运算了,我想了下,这个机会还是让你们自己探索比较好,或的逻辑是同假为假,一真则真
,就是两个条件中有一个为真就可以了。
练习:
小明开发了一个婚恋网站,但是总是接到用户的投诉,说是总有一些不男不女的人,甚至发一些辣眼睛的照片,对正常用户的使用造成了很大的影响,所以小明需要用户在使用前填写自己的性别,如果性别为男或者女,打印“你符合本网站的条件,欢迎体验”,否则打印“尊敬的用户,实在抱歉,不男不女的人妖变态没有资格使用我们的网站,为您带来不便敬请谅解”。
多分支
如果有多个条件怎么办呢?
第一种方法:用很多个if(不推荐)
score = int(input('请输入你这次Python考了多少分(0-100):'))
if score >= 90:
print('不错,很优秀')
if 90 > score >= 60:
print('还行吧,马马虎虎')
if score < 60:
print('唉,得加油了')
第二种方式:用多分支条件判断(推荐)
score = int(input('请输入你这次Python考了多少分(0-100):'))
if score >= 90:
print('不错,很优秀')
elif score >= 60:
print('还行吧,马马虎虎')
else:
print('唉,得加油了')
任务:请完善之前的BMI计算器,新增一个温馨小提示,胖了提醒用户太胖了,瘦了提醒用户太瘦了
根据BMI值的计算结果,人们被划分为不同的体重分类。体重分类标准如下:BMI值小于18.5,为过轻;BMI值介于18.5至24.9,为正常体重;BMI值大于25至29.9,为超重;BMI值大于或等于30,为肥胖
BMI值的计算公式为:BMI=体重(公斤)除以身高(米)的平方
while循环
语法:
while 条件:
当条件满足时,执行循环体内的程序
在运行之前,前自己演算一下运行的结果应该是多少
a = 0
while a < 5:
a = a + 1
print(a)
循环三要素:
1.初始值 (经常用变量)
2.终止条件
3.变量的变化量
练习:吴亦凡在进去之前有很多忠实的铁粉,他们很想念吴亦凡,甚至提出想到监狱里去陪吴亦凡(但是不清楚后面怎么没人去),所以请用程序实现,在页面上输出“想念凡凡的第1天”,一直到“想念凡凡的第100天”,最后打印“凡凡,你在里面好好改造,争取早日重新做人”。(真实社会事件,吴亦凡的粉丝在吴亦凡被羁押期间一直为吴亦凡声援,但是吴亦凡进去之后就没声了,她们的沉默让凡凡很受伤)
for..in..循环
for in 循环可以理解为,一堆人去排队,有多少人就要排多少次,也就是循环多少次
所有for循环的循环次数是确定的
以下是用一个列表是排队,列表中有三个元素,自然是循环3次,i就是这一次排队排到的元素,小明在最前面,第一次当然是小明,第二次是小红,第三次是小王,你打印出来的顺序是这样的吗?
for i in ['小明','小红','小王']:
print(i)
也可以使用range函数来产生一系列数字:
# 注意是从零开始,往后生成5个数,即0-4
for i in range(5):
print(i)
# 等同于
for i in [0,1,2,3,4]:
print(i)
如果你不想从零开始生成,也可以这样写
# 左包右不包原则,即10-13
for i in range(10,14):
print(i)
另外还可以设置步长,步长默认是1,你也可以改,第三个参数就是设置步长
你就想象一个人走楼梯,正常都是一次走一个楼梯,但是有的人步子要长一些,他可以第一次走五个楼梯,左脚踩在第一个台阶上,往后推五个台阶,右脚就直接踏上第六个台阶。
# 设置步长为5
for i in range(0,20,5):
print(i)
你甚至可以反正走
# 从20-0反着走
for i in range(20,0,-1):
print(i)
练习:用range()函数结合for循环实现,
打印1-100所有的整数
打印从0-100所有的奇数
打印从0-100所有的偶数
打印10,7,4,1
循环控制
- break 跳出全部循环
- continue 跳出本次循环
break
如果条件是True,表示循环条件一直成立,这做用法一定要小心,很容易出现死循环,造成程序崩溃,这种用法一般搭配循环控制语句来使用
while True:
password = input('请输入密码')
if password == '8888':
print('密码正确')
break
else:
print('密码错误')
拓展:另一种写法,不用循环控制语句。
password = ''
while password!='8888':
password=input('请输入密码')
print('密码正确')
是不是要难以理解一点,我们写程序能简单就简单一点,要符合正常人的思维,不需要写得很复杂让别人看不懂,来显得自己很牛,在工作上没有人愿意和这样的人搭档。
任务:询问用户:“如果我是程序员,你会爱我吗?”
- 如果用户输入的是 ‘爱’,则打印“我就知道你是爱我的”,并退出程序
- 否则一直询问,直到天荒地老
continue
案例:打印1-30,但是不要打印7
for i in range(0,31):
if i == 7:
continue
print(i)
练习:
打印1-30,但是不要打印7以及7的倍数
提示:如果i
余7为0(i%7 == 0),表示i
能够被7整除(没有余数就是整除),那么i就是7的倍数
模块的引用
在完成项目之前,我们还差最后一个东西,就是如果产生随机数,产生随机数需要使用random库,使用前需要先引入。
其实你就理解为一个工具箱就可以了,这个工具箱中存放的全是和随机相关的工具,我们要用的就是random.randint()
(产生随机整数)工具,你还需要告诉它,你要产生多少到多少的随机数(左包右也包)。
import 模块名
import random
random_number = random.randint(1, 99)
print(random_number)
import 模块名 as 别名
另外,还可以给模块名取别名
import random as r
random_number = r.randint(1, 99)
print(random_number)
注意,内置库可以直接引用,如果是第三方库需要先安装,安装方法为:win+r,cmd,pip install 模块名。😎
异常处理(扩展)
在我们的项目中,如果用户输入的不是数字,会发生什么错误,应该怎么解决呢?
这个时候我们可以采用异常处理的判断,因为这是我们写的第一个程序,我不想弄得太复杂,这一部分内容作为扩展,你愿意尝试就自己尝试吧,我就不讲了,大家都相信用户会输入数字的吧。
try:
#尝试执行这段代码
except:
#如果出错就执行这段代码,否则不执行
项目实践
基础的知识我全部讲完了,现在该你们去完成项目了
无非就是讲上面讲的知识综合应用起来,说起来容易,做起来难,每个知识点都弄懂了,不代表你能够去完成实际的项目,这也是项目教学的特点,培养你们综合运行知识解决实际需求的能力。
项目需求:
计算机随机产生一个0-100的数(别让用户看到),用户输入一个数,如果比随机数大,则提示用户“大了”,否则提示用户“小了”,直到用户猜对,打印“恭喜你猜对了”,程序结束。