python练习题

1 编写程序,完成下列题目(1分)
题目内容:
如果列出10以内自然数中3或5的倍数,则包括3,5,6,9。那么这些数字的和为23。要求计算得出任意正整数n以内中3或5的倍数的自然数之和。

输入格式:
一个正整数n。

输出格式:
n以内中3或5的倍数的自然数之和。

输入样例:
10

输出样例:
23
时间限制:500ms内存限制:32000kb

n = int(raw_input())
sum = 0
for i in range(0, n):
    if i % 3 == 0 or i % 5 == 0:
        sum += i
else:
    print sum

2.编写程序,完成下列题目(1分)
题目内容:
10以内的素数2,3,5,7的和为17。要求计算得出任意正整数n以内的所有素数的和。

输入格式:
一个正整数n。

输出格式:
n以内的所有素数的和。

输入样例:
10

输出样例:
17
时间限制:500ms内存限制:32000kb

import math
n = int(raw_input())
sum = 0

for tmp in xrange(2, n):
    for i in xrange(2, int(math.sqrt(tmp)+ 1) ):
        if tmp % i == 0 :
            break
    else:
        sum += tmp
print sum

3 编写程序,完成下列题目(1分)
题目内容:
根据下列信息计算在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整除也是闰年

输出格式:
一个正整数

时间限制:500ms内存限制:32000kb

1).自己摸索出来的:
days = 0
weekday = 1
year = 1900
count = 0
num = 0
if  year % 4 == 0 and year % 100 != 0 or year % 400 == 0:
    days = 366
else:
    days = 365
weekday += days % 7

for year in range(1901,2001):

    for month in  range(1,13):
        if month in [1,3,5,7,8,10,12]:
            days = 31
            weekday += days
            if weekday % 7 == 0:
                count += 1
        elif month in [4,6,9,11]:
            days = 30
            weekday += days
            if weekday % 7 == 0:
                count += 1
        elif  year % 4 == 0 and year % 100 != 0 or year % 400 == 0:
                days = 29
                weekday += days
                if weekday % 7 == 0:
                    count += 1
        else:
                days = 28
                weekday += days
                if weekday % 7 == 0:
                    count += 1
print count

2.)做完作业后看到网友比较高级的答案:
count=0
year=1901
month=[31,28,31,30,31,30,31,31,30,31,30,31]
day= 1 + 365 %7
while year < 2001:
    if (year%4==0 and year%100!=0) or year%400==0:
        month[1]=29
    else:
        month[1]=28
    for mon in range(12): 
        day += month[mon]
        day = day%7
        # print(day,mon)
        if day == 0:
            count += 1
    year += 1
print(count)

4.编写程序,完成下列题目(2分)
题目内容:
数字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
时间限制:2000ms内存限制:32000kb

import math
count = 0
n = int(raw_input())
shuzi = 0
if n >= 2:
    for shuzi in range(2,n+1):
        #shuzi = 197
        for yinzi in range(2,int(math.sqrt(shuzi) + 1)):
            if shuzi % yinzi == 0:
                #print ‘break:‘,shuzi,yinzi
                break
        else:
            sushu = shuzi
            #print sushu
            sushu_tmp = sushu
            weishu = 0
            while sushu_tmp != 0:
                weishu += 1
                sushu_tmp /= 10
                
            #print ‘weishu:‘,weishu
            if weishu == 1:
                count += 1
            elif weishu >= 2:
                #print sushu
                i = 1
                while i < weishu:
                    shuzi_xunhuan = int(sushu/(10**i)+(sushu %(10**i) )* (10 ** (weishu - i)))
                    i += 1
                    for yinzi2 in range(2,int(math.sqrt(shuzi_xunhuan) + 1)):
                        if shuzi_xunhuan % yinzi2 == 0 :
                            i = weishu + 1
                            break
                if i == weishu:
                    count +=1

    print count

本文出自 “运维者说:从菜鸟到老鸟” 博客,请务必保留此出处http://liuqunying.blog.51cto.com/3984207/1591886

Python 练习题是指设计用来提高编程技能加深对Python语言理解的编程问题。这些练习题通常涉及不同的Python编程概念技巧,从基础语法到高级主题都有涵盖。以下是一些常见的Python练习题类型: 1. 基础语法练习:这些练习帮助初学者熟悉Python的基本语法,比如变量声明、据类型、控制结构(if-else语句、循环)以及函定义等。 2. 据结构操作:涉及Python内置的据结构,如列表(list)、字典(dict)、元组(tuple)集合(set)的操作练习,包括增删改查等。 3. 面向对象编程:包含类对象的定义、继承、多态封装等面向对象编程概念的实践题目。 4. 错误异常处理:学习如何处理在代码执行过程中可能遇到的错误异常。 5. 文件操作:练习如何在Python中读写文件,包括文本文件二进制文件的操作。 6. 模块包:学习如何导入使用Python标准库中的模块,以及如何创建使用自定义包。 7. 高级特性:练习Python的高级特性,比如列表推导式、生成器、装饰器上下文管理器等。 8. 据处理:包含使用Python进行据分析处理的练习,如使用Pandas库操作据框(DataFrame)。 9. Web开发基础:涉及使用Flask或Django等框架进行简单的Web应用开发。 10. 测试:编写单元测试来验证代码的正确性。 通过解决这些问题,可以系统地提升Python编程技能,并在实际开发中更加得心应手。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值