小学期学习Python编程实训实验报告2

1.通过键盘输入n,计算1+2+3+…+n 的值并打印输出

n=int(input())
print(sum(range(1,n+1)))	#1到n循环相加

2.通过键盘输入一个小于10位的正整数,打印这个数的位数(长度)并逆序输出该数字每一位的数字。示例图:

x=int(input('请输入一个小于10位的正整数:'))
listnum=[]                            #设置一个空列表以倒序存放数字
while(x!=0):
    last=x%10                        #获得个位数字
    listnum.append(str(last))            #将个位数字存入列表
    x=x//10                          #删除个位数字
print('这个数的长度是',len(listnum),',逆序输出结果是',listnum)

3.现有一个升序数组[1,10,30,40,60,100,200,900],从键盘输入一个1-900之间的整数,将其插入该数组的同时保持数组升序,打印输出插入结果及插入位置下标,示例图

List = [1,10,30,40,60,100,200,900]
x = int(input('请输入要插入的数字'))              #输入数字
for i in range (len(List)):                         #遍历数组找到插入位置
    if (List[i+1] > x > List[i]) :
        break
List.insert(i+1,x)                               #插入输入的数字
print('插入位置为',i+1,',插入后的数组值为',List)  #输出插入后的数组

4.编写程序,通过键盘输入项数n,打印输出斐波那契数列的前n项。比如斐波那契数列的前5项为:0 1 1 2 3

n=int(input('请输入项数'))
fib0 = 0
fib1 = 1
if (n >= 1):                      #分支结构项数为1时直接输出第一项
    print(fib0,end=' ')
if (n >= 2):                      #分支结构项数为2时直接输出前两项
    print(fib1,end=' ')
for i in range (2, n):               #循环结构当项数大于2时求每一项的值并输出
    fib1, fib0 = fib1 + fib0, fib1
    print(fib1,end=' ')

5.编写程序,计算组合数C(n,i),即从n个元素中任选i个,有多少种选法

import math                 #调用math模块

n = int(input('n='))
i = int(input('i='))
fn = math.factorial(n)      #计算n的阶乘
fi = math.factorial(i)      #计算i的阶乘
fni = math.factorial(n-i)   #计算n-i的阶乘
c = fn/(fi*fni)             #计算组合数C(n,i)
print(c)

6.编写程序,计算百钱买百鸡问题。假设公鸡5元一只,母鸡3元一只,小鸡1元三只,现在有100块钱,想买100只鸡,问有多少种买法

n = 0
for cock in range (0,21):           #三重循环判断公鸡母鸡小鸡个数是否满足条件
    for hen in range (0,34):
        for chicken in range (0,101):
            if (5*cock+3*hen+chicken <= 100 and cock+hen+chicken*3 == 100):
                n+=1                #满足条件时买法增加1
print('有',n ,'种买法')

7.编写程序,判断今天是今年的第几天

import time                       				  #调用time模块

date = time.localtime()             				  #获取系统时间
year, month, day = date[:3]       					  #将年月日拆分
day_month = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
if year % 400 == 0 or (year % 4 == 0 and year % 100 != 0): #判断闰年并修改闰年日期
    day_month[1] = 29
if month == 1:
    print(day)
else:
    print(sum(day_month[:month-1])+day)

8.编写程序,打印输出由1、2、3、4这四个数字组成的每位数都不相同的所有三位数

for i in range(1, 5):
    for j in range(1, 5):
        for k in range(1, 5):               #三重循环,每一位遍历四个数字
            if(i != j and j != k and i != k):   #判断符合各位不相等时输出
                n = i*100 + j*10 + k
                print(n,end=' ')

9.编写程序,生成一个包含50个随机整数的列表,然后删除其中所有偶数

import random           		      #调用random模块
x = []
for i in range(0,50):
    x.append(random.randint(1,1000))     #生成50个1-1000之间的随机整数
print('删除前:', x)
i = 0
n = 50
while(n > 0):                   		  #遍历50个随机整数
    n -= 1
    if(x[i] % 2 == 0):        			  #判断整数是偶数就删除
        del x[i]
        i = i - 1
    i += 1
print('删除后:', x)

10.编写程序,实现分段函数计算,如下表所示

xy
x<00
0<=x<5x
5<=x<103x-5
5<=x<100.5x-2
20<=x0
x = float(input('x='))
if (x < 0):             #判断x的大小,对y进行不同的对应关系的运算
    y = 0
elif(0 <= x < 5):
    y = x
elif(5 <= x < 10):
    y = 3*x-5
elif(10 <= x < 20):
    y = x/2-2
else:
    y = 0
print('y=',y)

  • 5
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值