鱼C论坛

 找回密码
 立即注册
查看: 613|回复: 0

[学习笔记] 零py-(ep-09)

[复制链接]
发表于 2023-7-30 18:40:45 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
分支与循环:
1、分支:if语句

1.1、if管控其缩进部分的所有代码
1.2、判断多个条件:if-elif   注意:elif为“否则就判断”,即:当if条件不成立时,才判断elif
1.3、if-elif-else:上面所有条件均不成立的情况下,执行某个代码块  注意:else if elif 三者后面都要加冒号
2.1、python中计算分数要把 分数变小数!不能用%来计算,%是求余的!
2.2、Python 是通过缩进来检测代码块的,向右缩进相同距离的所有语句,都同属于一个代码块,相同距离即可,不要求几个空格
2.3、print(number, "是一个奇数。",sep='') 在打印输出时,python默认用空格将每个逗号部分分开,加上sep='',可以将间隔变无
3.1、if-else的条件表达式结构:条件成立要执行的语句-if-条件表达式-else-条件不成立要执行的语句
3.2、注意 在条件表达式形式时 可以给一整段代码加()小括号,来区分
3.3、python通过缩进区分代码块
3.4、任何非空字符串的测试结果均为true
3.5、条件分支和and/or运算符可以相互转换 :
3.6、" // "表示整数除法,返回值是一个整数
        
2、循环:
while循环:

2.1、 break语句用来跳出循环体,不管后面还是否有未执行的程序;continue跳出本轮循环,回到循环体的条件判断位置,继续下一次循环判断
2.2 、  while-else结构:else当判断条件不成立时才执行else后面的语句。else是用来对付break的,即使break退出了整个循环,也不会无脑执行else后面的语句.while-else 可以非常容易地检测到循环的退出情况
2.3、break和continue每次只跳出一层循环
2.4、注意:使用 input 函数获取的是一个字符串结果,如果做计算的话,要转换成整数形式int
2.5、// 为整数除
2.6、寻找10以内的素数:
j=2 #判断10以内的素数,从2开始判断   素数:除了1和其本身不能被其他任何数整除的数
while j<10 :  #控制j在10以内 外层循环控制 待判断的数值
    i=2     #i为从2到9的数,用来被遍历
    while i<j :  #当i<j即避免了与自身判断的情况 内层循环用来对每个j进行遍历
        
        if  j%i==0:  #判断对于每一个j来说,遍历的i是否能够整除
           print(j,"=",i,"*",j//i) #若能整除直接输出表达式,注意//为整除除法
           break #如果上一步已经判断是非素数,应该直接换下一个数进行判断,所以直接跳出内层循环,执行j+=1
        
        i+=1 #如果不能整除,则迭代下一个i,继续进行下次内循环
    else:
         print(j,"是一个素数")#内循环都结束后,遍历完成,顺利渡劫成功,可确认是素数

    j+=1 #在外层循环中,内层循环结束,换成下一个j,继续判断

for循环

3.1 、格式: for 变量 in 可迭代对象: (可迭代:指的是可以单独拎出来的对象,字符串、数组)for循环 每次将迭代对象的每一个拿出来赋值给变量
3.2、range(stop):变量从0开始的、range(start,stop):变量从start-stop-1、range(start,stop,step) :步进还可以是负数其参数均为整型
3.3、for循环仍然可以嵌套,用break 和continue语句
3.4、for循环判断素数:
#判断10以内的素数,从2开始判断   素数:除了1和其本身不能被其他任何数整除的数
for j in range(2,10) :  
      
    for i in range(2,j) :         
        if  j%i==0:  
           print(j,"=",i,"*",j//i)
           break
        
    else:
         print(j,"是一个素数")
3.5、水仙花

for i in range(100,1000):
    a = i//100
    b = (i-a*100)//10
    c = (i-a*100-b*10)
    if i == a*a*a+b*b*b+c*c*c :
        print(i,"是水仙花s")
    else:
        continue  #注意continue才是 仅跳出一层循环

#水仙花作者
for i in range(100,1000):
    sum = 0   #sum是用来计算各个位数的立方和的
    temp = i   #temp是为了防止污染原数据
    while temp:   #只要temp是有效非零数据则开始下面的分解
        sum = sum + (temp%10)**3    #通过分别取出其个位十位百位数字,temp%10 取出个位数字,计算其3次方 **表示求指数
        temp = temp//10   #temp//10 是将123变成12,去除个位的操作,在经过循环,求得12个位2
    if sum == i:
        print(i)

3.6、len() 函数的参数需要是一个序列或者集合(才能够获取长度嘛),整数是不能作为其参数的,so,len(1254)会报错
3.7、#回文:key 搭配使用求余数运算符(%)和整除运算符(//)

x = int(input("请输入一个正整数:"))

if x < 0 or (x % 10 ==0 and x != 0):  #首先判断复数不是回文,非零的结尾是0的数字也不是回文,先把错误范围排除掉
    print("不是回文数")
else:
    re = 0    #re是用来存放x的倒叙数字的
    while x > re :  #根据规律只需要探究前半的数字部分即可
        re = re*10 + x%10   #每次的re×10,x取一个个位
        x = x//10  
    if x == re or x == re//10 :  #分为x是奇数还是偶数的情况
        print("是回文")
    else:
        print("不是回文")

评分

参与人数 1荣誉 +5 贡献 +3 收起 理由
python爱好者. + 5 + 3 鱼C有你更精彩^_^

查看全部评分

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-6-9 08:26

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表