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.编写程序,实现分段函数计算,如下表所示
x | y |
x<0 | 0 |
0<=x<5 | x |
5<=x<10 | 3x-5 |
5<=x<10 | 0.5x-2 |
20<=x | 0 |
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)