Python 入门必备-逻辑判断综合案例讲解|学习笔记

简介: 快速学习 Python 入门必备-逻辑判断综合案例讲解

开发者学堂课程【Python 开发基础入门Python 入门必备-逻辑判断综合案例讲解】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/556/detail/7654?


Python 入门必备-逻辑判断综合案例讲解


目录:

一、练习

二、范例


一、练习

1. 打印一个边长为n的正方形口求100内所有奇数的和

2. 求一百以内所有奇数和

3.判断学生成绩,成绩等级A~E。其中,90分以上为'A',80~89分为'B',70~79分为'C',60~69分为'D',60分以下为'E'

4.求1到5阶乘之和

5.给一个数,判断它是否是素数(质数)

6.质数:一个大于1的自然数只能被1和它本身整除


二、范例

1.打印一个边长为n的正方形,要求要一个空心正方形。

让行距拉起来以后变成一个矩型,用大部分增加正方一点。第一行打印,一排过去,第二行空格,然后重复了好几下之后,最后又打印一行,跟第一行一样,发现中间有重复,那个就是迭代,就是for循环。还发现第一行和最后一行不一样,就是解决问题办法,来解决问题的办法关键迭代和for循环。

打印一个边长为n的正方形,中间有重复,就是叠代。

1)

n=int(input('正方形边数')) #4 这里假设n等于4

print('*'*n)      #****

for i in range(n-2):

print('*','*(n-2),'*')

print('*'*n)#****

假设是个四边形,用最简单来带,先打印然后最后打印,中间n-2然后做迭代然后去凑。找到规律并用到循环。

2)

#打印一个边长为n的正方形

n=int (input ("Input the square"s length>>>""))

sepTop = "*"

sepMid = "* "

for i in range (0,n):

sepTop t- "\t* "

sepMid += "\t"中间加/t凑个星。

else:

sepMid +=“*"

print (sepTop)

print (sepMid)

#for i in range(o,n-1):

#print (sepaMid)

else:

#print("\n")

#print(sepTop)

for i in range(0,n-1):

print ("\n")

print (sepMid)

else :

print ( "\n")首行凑齐就可以打印

print ( septop)

运行结果:

Input the squares length>>>5

最后凑一个所谓top,在里面设计了中间的和顶上的,用上了for else,这些东西在循环中不停迭代,再把它凑出来没有用再用break,上面只有能够迭代就行,这个数假设给了个3,这里都正常执行,再用else语句没在打印。

3)

print (sepTop)

a=int(input('>>>" ))

i=0

while i<-(a-1) :

if i==o or i==( a-1):  这个就是迭代条件

print ('*’*a)

else:

print ( '*‘+’ ‘* (a-2)+'* ')

i+=1

这里可以更间简单和美观用for循环,有更好的写法,当知道能循环多少次的时候用for循环。

4)

number=int (input ( "Please input a number : "))

print (**number)

for i in range (number-2:   #3

for j in range ( number) :    

#如果碰到0=number5,j是0-4,number还是5,如果j=0或者等于5的时候,j的取值范围是,range的取值范围是0-4

If j==0 or j==(number):这个条件没有起作用

print ( '*'+’ ‘* (number-2)+’*')

else:

print ( ‘*’*number)

代码执行结果:

Please input a number:5

1、这两种嵌套,复杂程度过高。

2、这个程序虽然能实现,但两层嵌套的效率可能会低一点,当引入嵌套程度更多的时候,他的效率不一定会高。

3、所以j不能等于5,没有用到,j=0的时候才打印,j=1234就循环走了。有许多无用代码要把它去掉。

5)

X= int( input( "number") )

print(x*”*”)

for i in range(x-2):

Printf("*"十(x-2)*" "+”*")

print (x**)

2.for i in range ( o,n) :

sepTop += "\t* "

sepMid += "\t "

else:

sepMid +="*"

print (sepTop)

for i in range (o,n-1) :

print ( "\n")

print (sepMid)

else:

print ( "\n")

print (sepTop)

2.这个题可以变成一种对称,当然也有非对称的地方,对称的地方可以变化:

范例答案:

1)

n = 5

print(*'*n)

for i in range(n-2):

print(*'+'*(n-2)+'*')

print(*'*n)

2)

Range函数的新方式

边为3,则-1 0 1 => range(-1,2)

边为4,则-2-10 1 => range(-2,2)range函数就是-2 - 2

边为5,则-2 -1 0 1 2 => range(-2,3)通过这样的推特过程把range函数推出来

n=5

e = -n//2

for i in range(e,n+e):(这里-1-1没办法)

if i == e or i == n+e-1:这里是底

print(’*’*n)

else:

print('*'+ '*(n-2)+'*')

最有价值的不在效率,而在它的思维过程。

左边已经写的够高效的,range函数还有其他玩法。写程序,不要局限于现有的方法。

要打破原来的方法,现在手段很多,但是以后发现原来这个手段发现这个场景下这种手段最好用,那就把左边已经是很精简了。搞这么复杂说明有些场景下,用对称性来解决问题的时候,会发现写的会比较漂亮。但是因为一些特殊性,当然可以在这上面再做一些改动。

2.求一百以内所有奇数和(2500 (累加)

sum = 0

for a in range ( 1,100,2) :

sum+= a

print (sum)

1)

J=0

for i in range (0,100):

if i%2!=0 :

j+=1

print ("sum = ",J)

运行结果:

Sum=2500

奇偶的时候因为每一次在这儿要算一次。但是这是一种实现,这没有问题就没有问题,所以这块就是跳过一些无用功。

2)

b = o

for i in range ( 1,100,2):

b += i

print (b

能跳过就跳过

3)

sum=0

for i in range (1,100,2):

sum +=i

print(sum)

变量用sum的好,请注意之后对格式有要求,比如两边留空格

代码风格看出写没写过代码

4)

#打印100以内奇数之和

sum =0

for a in range (i,100, 2):

sum+=a

print(sum)

如果已经跳过去,就不用算了

score = int(input('input a score: " ) )

if score >=70:

if score <=79:

print( ‘C')

elif score <= 89:

print ('B')

else :

print ( 'A')

else :

if score >=60:

print ( 'D')

else :

print ( 'E')

3. 判断学生成绩,成绩等级A~E。其中,90分以上为'A',80~89分为'B',70~79分为C',60~69分为'D',60分以下为E'

这个问题,其实就是做一下判断,90 80 70 60分如果说要不要迭代,发现好像这个方式也不合适,因为每次打印东西不太一样,也就说每一个区间它的规律的似乎有,但是又没什么太多规律。

abcde上看是有规律,90,80,70,60也有规律。规律其实存在的,可以写出一个迭代版本,就在循环里面它是有规律的,只是做太不划算了。

1)

a=int (input("请输入学生成绩:"))

if a>=80:

If a>90:

print( A)

else :

print ( 'B)

elif a>=60:

if a>70:

print ( 'C)

else:

print ('D)

else:

print ( 'E')

对于大的空间搜索的问题,要考虑要不要折半。

直接看到是不是大于90,有的时候要考虑一下,这里本来就是有限个判断。就说现在有的时候,不要过多的去想。

但是对于一个大的空间中去搜索的问题,这个时候发现是不是在很大一个区间内来回变化?

这个时候就不确定他应该是在哪儿,建议用折半的思想来说搜索效率更高,这个边界由自己来定义。

要判断这个数是几位数,会发现在很大区间来回变换,用折半思想会发现搜索效率更高。

2)score = int(input ( 'input a score: "))

if score >=70:

ifscore <-=79:

print ('C')

elif score <= 89:

print('B')

else:

print ( 'A')

else:

if score >= 60:

print ('D')

else :

print ( 'E')

不管是正的,逆的都可以的,也用是折半,这种小空间用不用都行。

3)

Num=intinput(Please num : "))

while 0<=num <=100:

if num < 60:

print ("E")

break

elif num< 70:

print ("D")

break

elif num < 80:

print ("C")

elif num < 90:

print (""B")

break

else:

print ("A")

Break

因为有 if 有 else 总有一个分支是可以循环的,一进去就 break 了。他用的这个where 条件,因为条件是肯定式,这进去以后如果小于60就是e,小于70,小于八十,如果严格90及90以上等于a,就要加等号了。

对于刚才,给一个数,判断它是否是素数(质数)

质数:一个大于1的自然数只能被1和它本身整除这里

牵扯到算法的问题,但是要把质数算出来。

相关文章
|
20天前
|
SQL 关系型数据库 数据库
Python SQLAlchemy模块:从入门到实战的数据库操作指南
免费提供Python+PyCharm编程环境,结合SQLAlchemy ORM框架详解数据库开发。涵盖连接配置、模型定义、CRUD操作、事务控制及Alembic迁移工具,以电商订单系统为例,深入讲解高并发场景下的性能优化与最佳实践,助你高效构建数据驱动应用。
194 7
|
2月前
|
测试技术 开发者 Python
Python单元测试入门:3个核心断言方法,帮你快速定位代码bug
本文介绍Python单元测试基础,详解`unittest`框架中的三大核心断言方法:`assertEqual`验证值相等,`assertTrue`和`assertFalse`判断条件真假。通过实例演示其用法,帮助开发者自动化检测代码逻辑,提升测试效率与可靠性。
261 1
|
3月前
|
API 数据安全/隐私保护 开发者
Python自定义异常:从入门到实践的轻松指南
在Python开发中,自定义异常能提升错误处理的精准度与代码可维护性。本文通过银行系统、电商库存等实例,详解如何创建和使用自定义异常,涵盖异常基础、进阶技巧、最佳实践与真实场景应用,助你写出更专业、易调试的代码。
142 0
|
3月前
|
IDE 开发工具 数据安全/隐私保护
Python循环嵌套:从入门到实战的完整指南
循环嵌套是Python中处理多维数据和复杂逻辑的重要工具。本文通过实例讲解嵌套循环的基本用法、常见组合、性能优化技巧及实战应用,帮助开发者掌握其核心思想,避免常见错误,并探索替代方案与进阶方向。
285 0
|
3月前
|
JSON 数据格式 开发者
Python 3.10 结构模式匹配:简化条件逻辑的利器
Python 3.10 结构模式匹配:简化条件逻辑的利器
235 91
|
1月前
|
数据采集 监控 数据库
Python异步编程实战:爬虫案例
🌟 蒋星熠Jaxonic,代码为舟的星际旅人。从回调地狱到async/await协程天堂,亲历Python异步编程演进。分享高性能爬虫、数据库异步操作、限流监控等实战经验,助你驾驭并发,在二进制星河中谱写极客诗篇。
Python异步编程实战:爬虫案例
|
1月前
|
Cloud Native 算法 API
Python API接口实战指南:从入门到精通
🌟蒋星熠Jaxonic,技术宇宙的星际旅人。深耕API开发,以Python为舟,探索RESTful、GraphQL等接口奥秘。擅长requests、aiohttp实战,专注性能优化与架构设计,用代码连接万物,谱写极客诗篇。
Python API接口实战指南:从入门到精通
|
1月前
|
存储 Java 调度
Python定时任务实战:APScheduler从入门到精通
APScheduler是Python强大的定时任务框架,通过触发器、执行器、任务存储和调度器四大组件,灵活实现各类周期性任务。支持内存、数据库、Redis等持久化存储,适用于Web集成、数据抓取、邮件发送等场景,解决传统sleep循环的诸多缺陷,助力构建稳定可靠的自动化系统。(238字)
350 1
|
2月前
|
调度 数据库 Python
Python异步编程入门:asyncio让并发变得更简单
Python异步编程入门:asyncio让并发变得更简单
162 5

推荐镜像

更多