Python学习总结(day3-day5)

Python学习总结(day3-day5)

1 复习

day1-day2详细内容可见上一章

①注释

Ⅰ 作用:解释说明

Ⅱ 添加注释 :快捷键ctr+/

②缩进:

Ⅰ 一般顶格无缩进

Ⅱ 缩进快捷键:Tab

Ⅲ 当两行代码写在一行时需要","隔开

③标识符、关键字

Ⅰ 标识符:字母、数字、下划线(注:数字不能开头)

Ⅱ 关键字:True、False、None,特殊含义的词语(中国共产党)

④基本数据类型

Ⅰ 数字:a.意义;b.数学数字;c.int、float

Ⅱ 文本:’ '、" ";str(字符串)

Ⅲ布尔:True、False;(bool)布尔值

Ⅳ空值:None

⑤获取数据类型

int(数据)、float(数据)、str(数据)、bool(数据)

⑥输出:print
⑦输入:input

2 变量

①变量的作用:保存数据(将数据保存到变量中之后,就可以通过使用变量来使用数据)。

Ⅰ使用方式

a.需要时直接提供数据

示例:

需求:打印年龄=18

#方法一:
print(18)
print(89)
#方法二:
age = 18
score = 89
print(age)
print(score)

#比较:法一简单,但需要添加注释,不然意义不明;法二复杂一些,但是可以意义

在这里插入图片描述

b.数据保存到变量中以后再使用

示例:

英雄联盟台词:我不顾一切的冲出去,为你开辟一条安稳的路,我满腔热血的拍打着, 为你抛开
任何绊脚的石,最后,我坦然的微笑着用我的身体为你抵挡一切.因为我的身体上旋转着
我们的誓言。——牛头酋长

需求:打印五次台词

print('我不顾一切的冲出去,为你开辟一条安稳的路,我满腔热血的拍打着, 为你抛开
任何绊脚的石,最后,我坦然的微笑着用我的身体为你抵挡一切.因为我的身体上旋转着
我们的誓言。——牛头酋长')
print('我不顾一切的冲出去,为你开辟一条安稳的路,我满腔热血的拍打着, 为你抛开
任何绊脚的石,最后,我坦然的微笑着用我的身体为你抵挡一切.因为我的身体上旋转着
我们的誓言。——牛头酋长')
print('我不顾一切的冲出去,为你开辟一条安稳的路,我满腔热血的拍打着, 为你抛开
任何绊脚的石,最后,我坦然的微笑着用我的身体为你抵挡一切.因为我的身体上旋转着
我们的誓言。——牛头酋长')
print('我不顾一切的冲出去,为你开辟一条安稳的路,我满腔热血的拍打着, 为你抛开
任何绊脚的石,最后,我坦然的微笑着用我的身体为你抵挡一切.因为我的身体上旋转着
我们的誓言。——牛头酋长')
print('我不顾一切的冲出去,为你开辟一条安稳的路,我满腔热血的拍打着, 为你抛开
任何绊脚的石,最后,我坦然的微笑着用我的身体为你抵挡一切.因为我的身体上旋转着
我们的誓言。——牛头酋长')
#如上,代码冗长,报看(不好看),而且如果需要修改,工作量很大。

message = '我不顾一切的冲出去,为你开辟一条安稳的路,我满腔热血的拍打着, 为你抛开
任何绊脚的石,最后,我坦然的微笑着用我的身体为你抵挡一切.因为我的身体上旋转着
我们的誓言。——牛头酋长'
print(message)
print(message)
print(message)
print(message)
print(message)
#得到结果一样,但是下面这份代码的更简洁,如需修改也更为方便。
#通过以上对比得到结论:使用数据的数据一般不要直接使用,而是先将数据保存到变量中,再通过使用变量来使用数据。
②定义变量

Ⅰ 含义:创建变量保存数据

Ⅱ 语法:变量名 = 数据

说明:

a.变量名:有程序员自己命名,但必须符合要求规范

要求:是标识符,不能是关键字;

规范:

见名知义(看到变量名就知道这个变量中保存的是什么数据);

不使用系统函数名(print、input、type)、类名(int、float、str、bool)或模块名(random);

所有的字母都小写,多个单词之间用下划线隔开(目前Python变量名也可以使用驼峰式命名

b.“=”:赋值符号,固定写法

c.数据:需要保存到变量中的对象,可以是任何有结果的表达式

例如:具体的数据、已经赋值过的变量、有结果的运算表达式等

示例:

#狗的名字叫菜菜
dog_name = '菜菜'

#用已经赋值过的数据来给变量赋值

a = 100
b = 'abc'
c = a
print(c)
d = 10 + 20
e = input('请输入一个数据:')

在这里插入图片描述

③使用变量

Ⅰ 定义:使用变量就是使用变量中保存的数据。(数据能做的事情,保存这个数据的变量都可以做)

注意:变量必须先定义再使用

示例:

在这里插入图片描述

④重新给变量赋值:后赋的值会覆盖掉原有值

示例:

在这里插入图片描述

⑤同时定义多个变量:

Ⅰ 同时定义多个变量为相同值:变量1=变量2=变量3=…=数据

Ⅱ 同时定义多个变量为不同值:变量1,变量2,变量3,…=数据1,数据2,数据3,…

示例:

在这里插入图片描述

3 数学运算符

①赋值运算符和复合赋值运算符

赋值运算符:+(加)、-(减)、*(乘)、/(除)、%(取余)、//(整除)、**(幂运算)

+(加)、-(减)、*(乘)、/(除)和数学中的一样

不管是简单的赋值运算符还是复合赋值运算符,其功能都是给变量赋值(将一个数据保存到一个变量中)。注意:所有赋值运算符的左边必须是变量,右边必须是能够提供数据的表达式。 其中,除法运算的运算结果的类型一定是浮点型。

复合赋值运算符:+=、-=、*=、/=、%=、//=、**=

语法:变量 += 数据,先将变量中的数据取出来和后面的数据进行加法运算,然后让加法运算的结果保存到前面的变量中。 注意:复合赋值运算符前面的变量必须是已经赋值过的变量

示例:

在这里插入图片描述

在这里插入图片描述

②取余(取模)

示例1:

在这里插入图片描述

示例2:判断两个数是否存在整数关系(即余数是否为0)

在这里插入图片描述

示例3:取整数的低位数(即让整数对10或者10的幂次方进行取余操作)

在这里插入图片描述

③幂运算

示例:

在这里插入图片描述

④整除

示例1:

在这里插入图片描述

示例2:去掉一个正整数的低位数,保留高位数

在这里插入图片描述

练习:获取任意一个正整数的10位数。

num = 23456

print(num // 10 % 10)

print(num % 100 // 10)

方法一:去掉个位数

方法二:只取十位数和个位数

在这里插入图片描述

4 运算

①比较运算:>(大于)、<(小于)、>=(大于等于)、<=(小于等于)、==(等于)、!=(不等于)。注意:所有的比较运算的运算结果都是布尔值。

示例1:

在这里插入图片描述

示例2:

在这里插入图片描述

②逻辑运算

Ⅰ 与(and):如果需要两个条件同时满足,就用and来连接这两个条件;相当于生活中的并且。

运用规则:条件1and条件2:如果两个条件都是True,结果就是True,只要有一个是False

			True and True:True

​ True and False:False

​ False and True:False

​ False and false:False

示例:写出判断num是否能同时被3和7整除的条件

在这里插入图片描述

练习:写出判断出num是否是大于10的偶数的条件

num = 34
print('num是否是大于10的偶数:',num > 10 and num % 7 == 0)

在这里插入图片描述

Ⅱ 或(or):如果需要两个或者多个条件中有一个条件成

运算规则:条件1 or 条件2:如果两个条件都是False,结果才是False;只要有一个是True,结果就是True

​ True or True :True

​ True or False : True

​ False or True:True

​ False or False:False

练习1:判断num是否能被3或者4整除的条件

num = 234
print('num是否能被3或者4整除:', num % 3 or num % 4 == 0)

在这里插入图片描述

练习2:判断指定年份是否是闰年(世纪闰年:能被400整除的年;普通闰年:能被4整除但不能被100整除的年)

year = int(input('请输入年份:'))
print(f'{year}是否是闰年:', (year % 400 == 0) or (year % 4 == 0 and year % 100 != 0))


year = 2003
print(f'{year}是否是闰年:', (year % 400 == 0) or (year % 4 == 0 and year % 100 != 0))

在这里插入图片描述

在这里插入图片描述

Ⅲ 非(not):对一个条件进行否定

运算规则:not条件:对指定条件进行否定

​ not True:False

​ not False: True

示例1:年龄不大于12的条件

在这里插入图片描述

示例2:判断num是否等于10

在这里插入图片描述

练习:num是否能被3和7同时整除

num = 21
print(num != 10)
print(not num == 10)

在这里插入图片描述

③赋值运算:=、+=、-=、*=、/=、%=、//=、**=,所有的赋值运算符都是用来给变量赋值的。

Ⅰ=:将指定数据保存到指定变量中

示例:

在这里插入图片描述

Ⅱ+=:将变量保存的数据取出来后进行加法运算,再将结果重新赋值给前面的变量。注意:复合的赋值运算符前面的变量必须是已经定义过的变量。

示例:

在这里插入图片描述

Ⅲ-=、*=、/=、%=、//=、**=,同上。

示例:

在这里插入图片描述

Ⅳ赋值运算表达式没有结果

示例:

在这里插入图片描述

5 运算符优先级

数学运算符>比较运算符>逻辑运算符>赋值运算符

幂运算>乘(*)、除(/)、取余(%)、整除(//)>加(+)、减(-)

6 作业

详见作业章

示例:

在这里插入图片描述

7 流程控制

根据代码执行顺序的不同,可将代码分为3种

①顺序结构(默认):代码从上往下按顺序执行(每条语句执行一次)

示例:

在这里插入图片描述

②分支结构:根据条件判断是否执行

在这里插入图片描述

示例:

在这里插入图片描述

在这里插入图片描述

③循环结构(for、while):让代码重复执行(代码只写一遍,重复执行多次)

在这里插入图片描述

示例:

在这里插入图片描述

8 分支控制

①if 单分支结构:如果…就…

Ⅰ语法:if 条件语句:

​ 代码段

Ⅱ说明:if:固定写法;条件语句:任何有结果的表达式,一般为布尔值的表达式;“:”:固定写法;代码段:结构上和if保持一个缩进的一条或者多条语句(至少一条),逻辑上满足条件才需要执行。

示例:根据num的值打印’偶数’(如果num的值是偶数就打印’偶数’)

在这里插入图片描述

练习1:根据num的值打印’3的倍数’

num = 79
if num % 3 == 0:
    print('3的倍数')

在这里插入图片描述

练习2:如果year对应的年份是闰年就打印’闰年’

year = 2000
if (year % 4 == 0 and year % 100 != 0) or (year % 400) == 0:
    print('闰年')

在这里插入图片描述

练习3:若x是整数就打印’整数’

x = 23
if type(x) == int:
    print('整数')

在这里插入图片描述

②if 双分支结构:如果…就…否则…

语法:if 条件语法:

		代码段1(满足条件会执行的代码)

​ else:

		代码段2(条件不成立会执行的代码)

示例:根据num的值打印’偶数’或者’奇数’

在这里插入图片描述

练习:根据year的值打印’闰年’或者’平年’

year = 2000
if (year % 4 == 0 and year % 100 != 0) or (year % 400) == 0:
    print('闰年')
else:
    print('平年')

在这里插入图片描述

③if多分支结构:根据不同的条件做不同的事情

方法1:根据不同条件做不同的事情,其中一个条件成立的时候另外的条件也可能成立

语法:if 条件1:

​ 代码段1

​ if 条件2:

​ 代码段2

​ if 条件3:

​ 代码段3

方法2:根据不同条件做不同的事情,其中一个条件成立的时候另外的条件绝对不会成立(从前往后判断条件,执行第一个满足条件对应的代码段,一旦某个条件成立,后面的条件不会再判断)

语法:if 条件1:

​ 代码段1

​ elif 条件2:

​ 代码段2

​ elif 条件3:

​ 代码段3

​ …

​ else:

​ 代码段N

案例:打印指定的百分制分数对应的等级:>=90 - A; [80, 90) - B; [60, 80) - C; <60 - D

在这里插入图片描述

在这里插入图片描述

9 循环结构

①for循环

for 循环变量 in range(start, end):

语句1

 语句2

​ 语句3

range(100) - 0~99的取值范围

range(0, 100) - 0~99的取值范围

range(1, 101) - 1~100的取值范围

示例1:

在这里插入图片描述

示例2:输出如下所示的图案

在这里插入图片描述

range(1, 10, 2) - 1~9的范围,每次取值在原来的基础上+2

在这里插入图片描述

示例3:输出1-9的数字以及它们的平方和立方

在这里插入图片描述

示例4:1-100求和

在这里插入图片描述

示例5:找出100~999之间的水仙花数(153 = 1 ** 3 + 5 ** 3 + 3 ** 3)

在这里插入图片描述

示例6:输入一个大于1的正整数,判断它是不是质数(质数:只能被1和自身整除的数叫做质数,也叫作素数(prime number)。假设这个数是N,如果是质数,那么在2到N-1之间应该没有它的因子。)

在这里插入图片描述

在这里插入图片描述

示例7:输出100以内的质数

在这里插入图片描述

②while循环

while 循环条件(产生布尔值的表达式):

语句1

语句2

语句3

​ 条件如果成立,就执行循环体中的代码;条件不成立,离开循环执行后续代码。

​ 注意:在写while循环的时候,如果循环条件一直成立,循环就成了死循环!!!循环次数在一开始就能确定下来,我们可以直接构造一个范围使用for循环;如果循环次数不能确定,需要通过条件进行控制,我们就使用while循环。

示例1

在这里插入图片描述

写while循环会出现死循环,此时在终端用Ctrl+C,终止进程的执行(Windows:任务管理器;macOS:活动监视器)

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

示例2:

猜数字小游戏:

计算机产生一个1-100随机数让人来猜,人输入自己猜的数字,计算机会提示人"大一点"、“小一点”、“猜中了”,如果没有猜中游戏继续,如果猜中了游戏结束,如果猜了7次以上,计算机提示"智商捉急"。

在这里插入图片描述

在这里插入图片描述

10 作业(day4)

题目:

作业1:输出一个乘法口诀表(九九表)

作业2:输入两个正整数,求它们的最大公约数和最小公倍数

作业3:输入十个数,计算出平均值

作业4:输入两个正数n和k,n>=k,计算排列数和组合数

作业5:输入三角形三条边长,先判断能否构成三角形,如能计算其周长和面积

①自写结果

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

②评讲结果

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

11 分支循环结构经典案例

①百钱百鸡问题

公鸡5元一只,母鸡3元一只,小鸡1元三只,欲用100元买100只鸡,问公鸡、母鸡、小鸡各多少只?

提示:三个未知数,两个方程,可以假设公鸡、母鸡、小鸡分别为x,y,z只

x + y + z = 100

5x + 3y + z/3 = 100

在这里插入图片描述

②捕鱼

有ABCDE五个人去捕鱼,捕完鱼太累倒头睡觉。第二天,A第一个醒过来,他把鱼分成5份,扔掉多余的1条,拿走自己的一份;B第二个醒过来,他以为鱼还没有分过,把剩下的鱼分成5份,扔掉多余的1条,拿走自己的一份;C、D、E依次醒过来,都是按照上面的方法,把鱼分成5份,扔掉多余的1条,拿走自己的一份。问,他们最少捕了多少条鱼?

在这里插入图片描述

③CRAPS赌博游戏

摇两颗色子,玩家摇色子,如果第一次摇出了7点或11点,玩家胜;如果摇出2点、3点、12点,庄家胜;其他情况,游戏继续,玩家重新摇色子,如果摇出了第一次摇的点数,玩家胜;如果摇出了7点,庄家胜;其他情况,游戏继续,玩家重新摇色子,直到分出胜负。

要求:模拟游戏场景,输出玩家胜还是庄家胜;玩家一开始有1000元,每次玩的时候下注,赢了获得对应的注码;输了就输掉对应的注码;游戏结束的条件是玩家破产。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

④把两颗色子摇10000次,统计每种点数出现的次数和频率

在这里插入图片描述

在这里插入图片描述

⑤找出10000以内的完美数。(完美数:如果一个数等于除自身以外所有因子的和,那么这个数就叫完美数。)

在这里插入图片描述

12 心得

​ 经过一周的学习,我对python的了解也逐渐深入。基础知识对于我们新学者非常重要,所以在第一周的学习进程内比较缓慢且详细。
在最后两天案例的学习中,颇为迷茫,因为基础知识只能是帮助我们认识python,但当遇到实际问题时,还是依靠思维。代码的设计和语言的转换还是要依靠经验和重复练习,解题的套路千变万化,熟悉并灵活运用才能达到目的。条条大路通罗马,但罗马只有一个。

​ 而且在学习中,我认识到代码不仅要写的好看,更要实现高效率。代码优化一直是我在学习中的重难点,招式很多,但是不止要潇洒更要高伤害。所以在后续的学习中,我会更加勤于思考这方面的问题。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

百事不可乐BOOM

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值