python习题

1.输出9*9口诀。程序分析:分行与列考虑,共9行9列,i控制行,j控制列。

for i in range(1,10):
    for j in range(i,10): 
        print("{0}*{1}={2:2d}".format(i ,j ,i*j ),end="   ")
    print(" ")

2.编写一个根据三条边长,判断三角形类型的函数。

若不能构成三角形,返回0;

若构成等边三角形,返回1;

若构成等腰三角形,返回2;

若构成直角三角形,返回3;

若是其他三角形,返回4。

a=int(input('请输入三角形第一个边长:'))
b=int(input('请输入三角形第二个边长:'))
c=int(input('请输入三角形第三个边长:'))
def sjx(a,b,c):
    if a>0 and b>0 and c>0:
        if a==b==c:
            #构成等边三角形
            return(1)
        elif a==b and a!=c:
            #构成等腰三角形
            return(2)
        elif a*a+b*b==c*c:
           #构成直角三角形
            return(3)
        else:
            #是其他三角形
            return(4)
    else:
        return(0)#不能构成三角形
sjx(a,b,c)

3.有一个定义在自然数上的函数 f(x) 定义如下:
若 x <5 , 则 f(x) = x;
若 5<=x<15, 则 f(x) = x+6;
若 x>=15, 则 f(x) = x-6。
试编写该函数,输入x值,
返回相应的f(x)值。

x=int(input('请输入x值:'))
def f(x):
    if x < 5:
        return(x)
    elif 5<=x and x<=15:
        return(x+6)
    elif x>=15:
        return(x-6)
    else:
        return(0)
f(x)

4.一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?程序分析:在10万以内判断,先将该数加上100后再开方,再将该数加上268后再开方,如果开方后的结果满足如下条件,即是结果。

import math
for n in range(-100,27956):
    x = int(math.sqrt(100+n))
    y = int(math.sqrt(100+168 + n))
    if 100+n ==x*x and 268+n == y*y :
        print(n)

5.输入一个整数(单位万元)来猜汽车价格,代码中设置汽车价格为25。根据所猜价格分别对应猜对了,猜高了,猜低了三种输出结果。

a=eval(input())
if a>25:
    print("价格猜高了")
elif a==25:
    print("价格猜对了")
else:
    print("价格猜低了")

6. 输入某年某月某日,判断这一天是这一年的第几天?

程序分析:以3月5日为例,应该先把前两个月的加起来,然后再加上5天即本年的第几天,特殊情况,闰年且输入月份大于3时需考虑多加一天。

year=int(input('请输入年份:'))
mouth=int(input('请输入月份:'))
day=int(input('请输入日期:'))
mouths=[0,31,28,31,30,31,30,31,31,30,31,30,31]
if year%400==0 or year%4==0:
    mouths[3]=mouths[3]+1
 
    if 0<mouth<=12:
        days=0
 
    for item in range(mouth):
        sum=mouths[item]
        days=days+sum
        day_s=days+day
    print(f'这天是这年的第{day_s}天')
else:
    print('输入日期超出范围')

7.题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?

程序分析:兔子的规律为数列1,1,2,3,5,8,13,21….

rb = [0, 1]
mouth = int(input("请输入所求月份:"))
for i in range(1, mouth):
    rb.append(rb[i] + rb[i-1])
print('第', mouth, '月有', rb[mouth], '对兔子')

8.编写程序,生成一个包含20个随机整数的列表,然后对其中偶数下标的元素进行降序排列,奇数下标的元素不变

import random
f=[random.randint(0,100) for i in range(20)]
print(f)
y=f[::2]
#print(y)
y.sort(reverse=True)
#print(y)
f[::2]=y
print(f)

9.判断101-200之间有多少个素数,并输出所有素数。

程序分析:判断素数的方法,用一个数分别去除2到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数。 

for i in range(101,200):
    for j in range(2,i):
        if i%j==0:
            break
    else:
        print(i,end=',')

10编写函数f(n)。利用递归方法求5!,即求出f(5)。

n=int(input('请输入数:'))
def f(n):
    if n == 0:
        return 0
    elif n == 1:
        return 1
    else:
        return (n * f(n-1))
f(n)

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编程技能,并在实际开发中更加得心应手。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值