7.7python修习(程序控制结构)

选择结构

  1. 单分支结构( if 语句)
    在这里插入图片描述
    if 的嵌套
    在这里插入图片描述

  2. 多分支结构(elif)
    elif= else : if
    在这里插入图片描述

循环结构

  1. while循环结构
    在这里插入图片描述
    集体缩进以保证在循环体内(tab)
  2. break&continue
    在这里插入图片描述
  3. for 循环语句
    在这里插入图片描述在这里插入图片描述

循环使用 else 语句

在 python 中,for … else 表示这样的意思,for 中的语句和普通的没有区别,else 中的语句会在循环正常执行完(即 for 不是通过 break 跳出而中断的)的情况下执行,while … else 也是一样。

range函数

range(start, stop[, step])
>>>range(10)        # 从 0 开始到 9
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> range(1, 11)     # 从 1 开始到 10
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
>>> range(0, 30, 5)  # 步长为 5
[0, 5, 10, 15, 20, 25]
>>> range(0, 10, 3)  # 步长为 3
[0, 3, 6, 9]
>>> range(0, -10, -1) # 负数
[0, -1, -2, -3, -4, -5, -6, -7, -8, -9]
>>> range(0)
[]
>>> range(1, 0)
[]

start: 计数从 start 开始。默认是从 0 开始。例如range(5)等价于range(0, 5);
stop: 计数到 stop 结束,但不包括 stop。例如:range(0, 5) 是[0, 1, 2, 3, 4]没有5
step:步长,默认为1。例如:range(0, 5) 等价于 range(0, 5, 1)

1编写程序,完成下列题目(1分)

题目内容:

如果列出10以内自然数中3或5的倍数,则包括3,5,6,9。那么这些数字的和为23。要求计算得出任意正整数n以内中3或5的倍数的自然数之和。

输入格式:

一个正整数n。

输出格式:

n以内中3或5的倍数的自然数之和。

输入样例:

10

输出样例:

23

n=int(input())
sum=0
for i in range(1,n):
    if not(i%3):
        sum+=i
    elif not(i%5):
        sum+=i
print(sum)

2

题目内容:

10以内的素数2,3,5,7的和为17。要求计算得出任意正整数n以内的所有素数的和。

输入格式:

一个正整数n。

输出格式:

n以内的所有素数的和。

输入样例:

10

输出样例:

17

import math
n=int(input())
ans=0
if n>=2:
    ans+=2
for i in range(3,n,2):
    f=0
    for j in range(3,int(math.sqrt(i))+1,2):
        if i%j==0:
            f=1
            break
    if f==0:
        ans+=i 
print(ans)

3

题目内容:

根据下列信息计算在1901年1月1日至2000年12月31日间共有多少个星期天落在每月的第一天上?

a) 1900.1.1是星期一

b) 1月,3月,5月,7月,8月,10月和12月是31天

c) 4月,6月,9月和11月是30天

d) 2月是28天,在闰年是29天

e) 公元年数能被4整除且又不能被100整除是闰年

f) 能直接被400整除也是闰年

输出格式:

一个正整数

x=2
ans=0
run=0
for year in range(1901,2001):
    if (year%4==0 and year%100!=0) or (year%400==0): #判断是否是闰年
        run=1
    else: 
        run=0
    for month in range(1,13):
        if (year==2000) and (month==12):
            break
        if month==2:
            if run==1:
                x=(x+1)%7
            else:
                x=x
        elif (month==4) or (month==9) or (month==6) or (month==11):
            x=(x+2)%7
        else:
            x=(x+3)%7

        if x==0:
            ans+=1
print  ans

4

题目内容:

数字197可以被称为循环素数,因为197的三个数位循环移位后的数字:197,971,719均为素数。100以内这样的数字包括13个,2,3,5,7,11,13,17,31,37,71,73,79,97。要求任意正整数n以内一共有多少个这样的循环素数。

输入格式:

一个正整数n。

输出格式:

n以内循环素数的数目。

输入样例:

100

输出样例:

13

n=int(input())
ans=0
import math
if n>=2:ans=1
for i in range(3,n,2):
    num=i
    cnt=0
    x=1
    while(num):
        cnt+=1
        num=int(num/10)
        x*=10
    num=i
    for k in range(cnt):
        num*=10
        num+=int(num/x)
        num%=x
        
        if num%2==0:
            f=1
            break
        f=0
        for j in range(3,int(math.sqrt(num))+1,2):
            if num%j==0:
                f=1
                break
        if f==1:break
    if f==0:
        ans+=1
       # print(i,)
print(ans)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值