Python基础语法1—猜大小


print()函数

  • print (‘’)让程序无需理解,原样输出引号中的内容。

  • print()程序需要读懂括号里的内容(只能读懂数字和变量、以及运算符)。

我们先试试在控制台打印你好

# 这段程序会报错
print(你好)

注: #后面的东西都会变成注释,相当于告诉python,#后面的这一段文字是给程序员自己看的,不要把它当作是程序去运行。

因为python并不知道你好是什么东西,它会把你好当作是一个变量,但是发现没有这个变量,所以它就开始抱怨了(name ‘你好’ is not defined),意思是你好这个变量你没有定义过,我也不知道是啥,我没有办法给你打印。

至于变量是什么东西,我后面告诉你们。

那我们现就让python打印’你好’两个字,我们希望python也别问你好是什么东西了,别试着去理解,直接给我打印就完事了,那你加上单引号就可以。

print('你好')

如果是数字,python是能够理解的,可以不加引号,但是你说你要打印‘鸡泥钛镁’,鬼知道是什么东西(反正我都不懂,更别说python了),麻烦加上引号,否则程序理解不了肯定给你报错。

print(123)

另外表达式python也是直接能够理解的,什么叫表达式呢?比如3+2就是一个表达式,其中+号称为运算符,之后都会学的。

试一试,看看打印出来的结果是什么

print(3+2)

作业:

  1. 在控制台打印你喜欢的运动(或者人)

  2. 在控制台打印520

  3. 用python打印出520-99的结果(不要自己去计算,让程序计算)

  4. 在控制台打印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的世界里,我们经常会接收到各种数据,这些数据需要找盒子来保存起来,保存起来不算完,要用的时候我们还得记得是放在哪个盒子里的。

这些盒子就叫做变量,盒子上的标签纸就叫做变量名。

变量名命名规则

  1. 变量名通常由字母,数字,下划线组成;

  2. 数字不能作为变量名开头;

  3. 不能以python中的关键字命名;

  4. 变量名要有意义;

总结来说,变量里装的是什么东西,变量名就叫什么,一般用英文命名,不会英文就用拼音代替就完事

赋值语句

那怎么把东西放到盒子里呢?那就要通过赋值语句=

注意在python中,=代表赋值而不是等于,==才表示等于的意思

赋值就是把右边的东西装到左边的盒子里。

name = '小王'
print(name)

我把字符串’小王’放到一个名叫name的变量里

想一想,如果依次将两个东西装进同一个’盒子‘里,会怎么样。

name='小王'
name='小明'
print(name)

被多次赋值时,变量只会储存最新一次的赋值。

也就是说,变量是可以重新被赋值的,所以知道为什么要叫做变量了吗?因为变量是可以被改变的

相当于如果盒子里已经有东西了,我想再放一个新的东西,不好意思,一个盒子只能放一个东西,如果你要放新的东西进去,那么之前的东西就没了,这也就是变量值的覆盖。

课堂作业:

  1. 将’张三’放在一个名为student的变量里,然后打印变量的值

  2. 将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))

课堂作业:

  1. 请用户输入他的年龄,把用户输入的数据转换为整数类型之后,再存入age变量。
  2. 补全代码
    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))

课堂练习:

  1. 请用户输入自己有多少岁,然后我们帮其计算出他已经出生了多少天。(一年就当作365天)

  2. 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('唉,得加油了')

思考:

上面的程序为什么会报错,应该怎么修改。

提示:字符串不可以和数字进行比较,除非你把字符串转换为数字类型

课堂作业:

  1. 询问用户的年龄和姓名,如果年龄小于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. 打印1-100所有的整数

  2. 打印从0-100所有的奇数

  3. 打印从0-100所有的偶数

  4. 打印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('密码正确')

是不是要难以理解一点,我们写程序能简单就简单一点,要符合正常人的思维,不需要写得很复杂让别人看不懂,来显得自己很牛,在工作上没有人愿意和这样的人搭档。

任务:询问用户:“如果我是程序员,你会爱我吗?”

  1. 如果用户输入的是 ‘爱’,则打印“我就知道你是爱我的”,并退出程序
  2. 否则一直询问,直到天荒地老

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的数(别让用户看到),用户输入一个数,如果比随机数大,则提示用户“大了”,否则提示用户“小了”,直到用户猜对,打印“恭喜你猜对了”,程序结束。


文章作者: 彭韦浩
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 彭韦浩 !
 上一篇
uniapp uniapp
Android开发课程,一款主流开发app的框架,关键还是国产的,反正我经常用,确实好用,支持
2025-03-01
下一篇 
css教案 css教案
软件班,css教案,我们之后就要对页面进行美化了,对毛坯房进行装修了
2024-10-25
  目录