世界,你好!
描述
打印输出Hello World!是所有程序设计学习的第一个入门实例,采用Python语言输出这个实例的代码如下:
print('Hello world!')
请使用Python语言输出这个例子的中文版本,向世界发出第一声问候吧!(注意区分中文全角和英文半角符号)
print("世界,你好!")
圆面积的计算 S
描述
根据圆的半径计算圆面积,半径为25。请编写并运行如下代码:
radius = 25 #圆的半径是25
area = 3.1415 * radius * radius #根据公式计算圆的面积
print("{:.2f}".format(area)) #仅输出两位小数结果
《Python语言程序设计(第2版)》,第18页,微实例1.1
radius = 25
area = 3.1415*radius*radius
print("{:.2f}".format(area))
说句心里话 A
描述
分两次从控制台接收用户的两个输入:第一个内容为"人名",第二个内容为"心里话"。
然后将这两个输入内容组成如下句型并输出出来:
(人名),我想对你说,(心里话)
此题目是AutoOJ(自动评阅)类型,请注意:
1. 输入使用input(""),不要增加提示信息
2. 输出与要求一致
a=input("")
b=input("")
print("{},我想对你说,{}".format(a,b))
字符串逆序输出
描述
用户输入一个字符串,倒序输出。
输入格式
输入一个字符串
tempstr = input()
print(tempstr[::-1])
格式化输出
描述
用户输入一个小数,用format格式化输出,保留3位小数。
a = float(input())
print("{:.3f}".format(a))
计算矩形面积
描述
用户输入矩形的长和宽,计算其面积并输出,结果四舍五入,保留2位小数。
输入格式
第一行输入一个数字,代表矩形的长
第二行输入一个数字,代表矩形的宽
输出格式
输出矩形的面积
w = eval(input(""))
h = eval(input(""))
area = w*h
print("{:.2f}".format(area))
温度转换 II
描述
温度的刻画有两个不同体系:摄氏度(Celsius)和华氏度(Fabrenheit)。
请编写程序将用户输入华氏度转换为摄氏度,或将输入的摄氏度转换为华氏度。
转换算法如下:(C表示摄氏度、F表示华氏度)
C = ( F - 32 ) / 1.8
F = C * 1.8 + 32
要求如下:
(1) 输入输出的摄氏度采用大写字母C开头,温度可以是整数或小数,如:C12.34指摄氏度12.34度;
(2) 输入输出的华氏度采用大写字母F开头,温度可以是整数或小数,如:F87.65指摄氏度87.65度;
(3) 不考虑异常输入的问题,输出保留小数点后两位;
(4) 使用input()获得测试用例输入时,不要增加提示字符串。
tempstr = input()
if tempstr[0] in ['F','f']:
C = (eval(tempstr[1:])-32)/1.8
print("C{:.2f}".format(C))
elif tempstr[0] in ['C','c']:
F = 1.8*eval(tempstr[1:])+32
print("F{:.2f}".format(F))
else:
print("")
设计一个重量转换程序
参考温度转换实例编制一个重量转换程序,保留2位小数。
假定重量转换比值为:1千克(kg, 公斤)=2斤
输入格式
例1: 输入一个公制值:1.3千克
例2: 输入一个中国重量单位值:7.4斤
# WeightConvert
# 1千克(kg, 公斤)=2斤
a = input()
# 判断是否属于斤,并执行转换
if a[-2:]=="千克":
weight=eval(a[0:-2])*2
print("{:.2f}斤".format(weight))
elif a[-1]=="斤":
weight=eval(a[0:-1])/2
print("{:.2f}千克".format(weight))
# 输入错误时,提示信息
else:
print("输入错误")
蟒蛇绘制 C
描述
下面给出了一个"蟒蛇绘制"实例,先按代码敲进去,运行查看效果,然后尝试对代码进行修改,使其发生变化。
import turtle
turtle.penup()
turtle.fd(-400)
turtle.pendown()
turtle.pensize(30)
turtle.colormode(255)
turtle.pencolor((255,215,0))
turtle.seth(-40)
for i in range(4):
turtle.circle(40,100)
turtle.circle(-40,100)
turtle.circle(40,50)
turtle.fd(40)
turtle.circle(16,180)
turtle.fd(30)
turtle.done()
a除以b
描述 计算a除以b,结果四舍五入,保留2位小数。 输入格式 输入包括两行, 每行一个实数, b不能等于0
输出格式
正常计算结果为一个实数,当用户输入b为0时输出"除零错误"
a = eval(input())
b = eval(input())
if b != 0:
print(round(a/b,2))
else:
print("除零错误")
2的n次方
描述
计算2的n次方,n由用户输入
输入格式
输入一个正整数
输出格式
输出一个正整数
num1 = int(input())
print(2**num1)
表达式求值
描述
已经a,b,c的值分别为5,8和3,利用以下公式计算并输出x的值。
import math
a = 5
b = 8
c = 3
X = (-b+math.sqrt(b**2-4*a*c))/(2*a)
print(X)
阶乘
描述
用户输入一个正整数,使用数学库,计算其阶乘
import math
num = int(input())
sum = math.factorial(num)
print(sum)
拆分数字
描述
输入任意一个三位整数,请用内置的数值运算操作符输出该数字的个位,十位和百位数字。结果逗号隔开同行输出
num = input()
list1 = list(num)
list1.reverse()
a = int(list1[0])
b = int(list1[1])
c = int(list1[2])
print("{0:},{1:},{2:}".format(a,b,c))
天天向上的力量 B
描述
一年365天,以第1天的能力值为基数,记为1.0。当好好学习时,能力值相比前一天提高N‰;当没有学习时,由于遗忘等原因能力值相比前一天下降N‰。每天努力或放任,一年下来的能力值相差多少呢?其中,N的取值范围是1到10,N可以是小数。
获得用户输入N,计算每天努力和每天放任365天后的能力值及能力间比值,其中,能力值保留小数点后2位,能力间比值输出整数,输出结果间采用“逗号+空格”格式。
此题目是OJ题,使用input("")获得N。
n=eval(input(""))
up=1.0*pow(1+n*0.001,364)
down=1.0*pow(1-n*0.001,364)
print("{:.2f}, {:.2f}, {}".format(up, down, int(up/down)))
字符替换
描述
假设有段英文,其中有单独字母“P”被误写为“p”,请编写程序进行纠正。
输入格式
用户输入一个字符串。不要使用提示词语。
输出格式
程序输出字符串,其中原本包含的英文字母“p”全部被替换为“P”。
str = input()
if 'p'in str:
str = str.replace('p','P')
print(str)
获取浮点数的整数部分和小数部分
要求用户输入一个小数,能够分别获取整数部分和小数部分,并输出
zs,xs = input().split('.')
zs = int(zs)
xs = int(xs)
print(f'整数{zs}小数{xs}')
英文字符串单词个数统计
描述
输入一个英文字符串,按照空格分割单词并统计单词个数
str = input()
num = str.split(' ')
print(len(num))
获取月份字符串
描述
输入一个1~12的数字,输出相应的月份,例如输入3,输出“三月份”
输入格式
输入1~12之间的数字
输出格式
输出月份
a = int(input())
if a == 1:
print("一月份")
elif a == 2:
print("二月份")
elif a == 3:
print("三月份")
elif a == 4:
print("四月份")
elif a == 5:
print("五月份")
elif a ==6:
print("六月份")
elif a ==7:
print("七月份")
elif a ==8:
print("八月份")
elif a == 9:
print("九月份")
elif a == 10:
print("十月份")
elif a == 11:
print("十一月份")
elif a == 12:
print("十二月份")
判断闰年
输入一个年份,判断是否是闰年
闰年判断标准如下,满足其下1个条件即可
1、能被4整除,但不能被100整除
2、能被400整除
year = int(input())
if year % 4 == 0 and year % 100!=0 or year % 400 == 0:
print(f'{year:}年是闰年')
else:
print(f'{year:}年不是闰年')
三角形面积
描述
输入三角形的三条边a、b、c,判断三条边是否能够构成三角形,如果能够构成三角形,则输出该三角形的面积,否则输出“不能构成三角形”。三角形的判断条件:任意两边之和大于第三边。面积公式如下:
,其中s=(a+b+c)/2
a = float(eval(input()))
b = float(eval(input()))
c = float(eval(input()))
s = (a+b+c)/2
if a+b>c and a+c>b and c+b>a:
print(f'{(s*(s-a)*(s-b)*(s-c))**0.5:.1f}')
else:
print("不能构成三角形")
计算营业额
假设营业税率为6%,从键盘上输入销售额,计算应缴纳营业税款(保留两位小数)
应缴纳营业税款=销售额*营业税率
n = eval(input())
print("{:.2f}".format(n*0.06))
计算矩形面积
从键盘上输入矩形的长和宽,求解矩形面积。(要求:矩形的长和宽为正数,面积结果保留两位小数)
输入格式
输入的数据请使用以下方式完成,变量名任意,input() 函数中不要添加任何提示信息。
第一行输入一个数字,代表矩形的长
第二行输入一个数字,代表矩形的宽
a = float(input())
b = float(input())
c = a*b
print(round(c,2))
计算正多边形面积
正多边形是边长相等的多边形,而且所有的角相等。编写程序,提示用户输入边数以及正多边形的边长,然后利用下列公式计算其面积(保留两位小数)。说明:s表示为边长,n代表为边数。
area=(n*s²)/(4*tan(π/n) )
输入格式
输入的数据请使用以下方式完成,变量名任意,input() 函数中不要添加任何提示信息。
第一行输入第1个数据表示正多边形的边数
第二行输入第2个数据表示正多边形的长度
输出格式
保留两位小数留槽可用 {:.2f} 形式。
具体请参阅输入输出示例。
import math
n = int(input())
s = float(input())
area = (n*s**2)/(4*math.tan(math.pi/n))
print("该正5边形的面积为:{:.2f}".format(area))
求解平均值
假设有三个数num1,num2和num3,它们的值分别为68,12,78.求解这三个数平均值。
输入格式
无
输出格式
使用基本Print格式输出,具体参见输入输出示例
num1 = 68
num2 = 12
num3 = 78
average = (num1+num2+num3)/3
print("{}".format(average))
还是求解平均值
从键盘输入三个数num1,num2和num3的值,求解这三个数平均值并输出该三个数。
输入格式
输入数据的变量名任意,input() 函数中不要添加任何提示信息。
如:num1=input()
s = input()
l = s.split(',')
n1 = int(l[0])
n2 = int(l[1])
n3 = int(l[2])
print("num1= "+str(n1)+" num2= "+str(n2)+" num3= "+str(n3)+" 平均值: {:.1f}".format((eval(str(n1))+eval(str(n2))+eval(str(n3)))/3))
计算圆的面积和周长
从键盘上输入圆的半径值,求解该圆的面积和周长。(要求:半径值为整数,面积结果保留两位小数)
输入格式
输入的数据请使用以下方式完成,变量名任意,input() 函数中不要添加任何提示信息。
输入方式样例:r=input()
输出格式
使用.format格式输出面积保留两位小数,具体参见输入输出示例。
import math
r = float(input())
p = 2*math.pi*r
s = math.pi*r**2
print("圆面积:{:.2f}".format(s)+",圆周长:{:.2f}".format(p))
空气质量提醒
根据键盘输入的PM值提示不同的信息
如果0<=PM<35 输出 “空气优”
如果35<=PM<75 输出 “空气良”
如果PM>=75 输出 “空气污染”
其他情况 输出 “错误输入”
pm = int(input())
if 0<=pm<35:
print("空气优")
elif 35<=pm<75:
print("空气良")
elif 75<=pm:
print("空气污染")
else:
print("错误输入")
BMI指数计算
BMI指数 = 体重 (kg) / 身高的平方 (m2)
计算方法见下表:
分.# 0031003400380035003800390032446 | 国.# 0031003400380035003800390032446BM.# 0031003400380035003800390032446.# 0031003400380035003800390032446 (kg/.# 0031003400380035003800390032446.# 0031003400380035003800390032446.# 0031003400380035003800390032446 |
偏瘦 | <18.5 |
正常 | 18.5 ~ 24 |
偏胖 | 24 ~ 28 |
肥胖 | ≥28 |
要求按顺序输入身高和体重计算BMI指数
height,weight = eval(input())
height = float(height)
weight = float(weight)
BMI = float(weight/height**2)
if BMI < 18.5:
print(f'BMI数值为:{BMI:.2f}')
print('偏瘦')
if 18.5 <= BMI <24:
print(f'BMI数值为:{BMI:.2f}')
print('正常')
if 24 <= BMI <28:
print(f'BMI数值为:{BMI:.2f}')
print('偏胖')
if 28 <= BMI:
print(f'BMI数值为:{BMI:.2f}')
print('肥胖')
计算1+2+3+……+n的值
描述
计算1+2+3+……+n的值
n = int(input())
num = 0
i = 1
while i<= n:
num +=i
i+=1
print(num)
计算m到n的累加和
键盘输入整数m和n的值(其中m<n),计算并输出m+(m+1)+(m+2)+....+n的值。
m,n = eval(input())
m = int(m)
n = int(n)
sum = 0
i=m
while i<=n:
sum +=i
i+=1
print(f"sum={sum}")
输出倒三角型
用户输入数据n,输出n行的倒三角形
例如用户输入5
输出图形为
*********
*******
*****
***
*
其中第1行左侧没有空格,第2行左侧1个空格,第3行左侧1个空格,以此类推。
n = int(input())
a = '*'
b = ' '
i = n
while i>0:
print(b*(n-i)+a*(2*i-1))
i -=1
输入n,输出2*n-1行的菱形图形
例如:输入4,输出
*
***
*****
*******
*****
***
*
n = 4
for i in range(1,n+1):
print(' '*(n-i)+'*'*(2*i-1))
for i in range (1,n):
print(' '*i+'*'*(2*n-1-2*i))
输入两个奇数n、m
使用for语句编写循环,计算从n到m之间所有奇数的和
m, n = tuple([int(i) for i in input().split(',')])
print(sum(i for i in range(m, n + 1) if i % 2))
输入数据n,使用while语句,求出1+2+3+...+n的和
n = int(input())
i = 1
sum = 0
while i<= n:
sum +=i
i+=1
print(sum)
输入数据n和m
使用while语句计算n到m的所有数据和
n,m = eval(input())
n = int(n)
m = int(m)
i = n
sum = 0
while i<=m:
sum +=i
i+=1
print(sum)
编写程序计算以下多个数据项相加的和
-
1/1 + 1/2 + 1/4 + 1/8 + 1/16 + …
当其中的某一项小于10的-5次方时,就停止运算
输出强制保留4位小数的结果
sum = 0
a = 1
m = 10**5
while a<= m:
sum +=1/a
a=a*2
print("{:.4f}".format(sum))
计算多项相加的和
1/1 + 1/2 + 1/4 + 1/7 + 1/11 + 1/16 + 1/22 …
当其中的项小于10的-5次方时,
停止计算输出强制保留4位小数
sum = 0
a = 1
m = 10**5
i = 1
while a<= m:
sum+=1/a
a+=i
i+=1
print("{:.4f}".format(sum))
输入一个数据,判断它是否是素数
如果是,则输出“是素数”,否则输出“不是素数”
def is_prime(n):
if n ==1:
return False
for i in range (2,int(n**0.5 +1)):
if n%i ==0:
return False
return True
n = int(input())
if is_prime(n):
print("是素数")
else:
print("不是素数")
使用双重循环在屏幕上打印出矩阵,每个数字以1个空格隔开
1 2 3
4 5 6
7 8 9
a = 1
for i in range(1,4):
for j in range(1,4):
print(f"{a}",end=' ')
a+=1
print()
使用双重循环输出上三角九九乘法表
每个算式之间用 1个空格 隔开
1*1=1
2*1=2 2*2=4
3*1=3 3*2=6 3*3=9
4*1=4 4*2=8 4*3=12 4*4=16
5*1=5 5*2=10 5*3=15 5*4=20 5*5=25
6*1=6 6*2=12 6*3=18 6*4=24 6*5=30 6*6=36
7*1=7 7*2=14 7*3=21 7*4=28 7*5=35 7*6=42 7*7=49
8*1=8 8*2=16 8*3=24 8*4=32 8*5=40 8*6=48 8*7=56 8*8=64
9*1=9 9*2=18 9*3=27 9*4=36 9*5=45 9*6=54 9*7=63 9*8=72 9*9=81
for i in range (1,10):
a = 1
for j in range (1,i+1):
sum = i*a
print(f"{i}*{a}={sum}",end = ' ')
a+=1
print()
输出1-20之间(不包含1和20)的所有素数,每个数据占一行
2
3
5
7
11
13
17
19
flag = 0
for i in range(2,20):
for j in range(2,int(pow(i,0.5))+1):
if i % j == 0:
flag = 1
if flag == 0:
print(i)
flag = 0
百钱买百鸡问题
使用100元钱,买100只鸡;
其中公鸡5元一只,母鸡3元一只,小鸡1元钱3只
输出有多少种购买方式
请使用双重循环来完成该题,每种鸡可以为0只
num_chicken = 100
money = 100
cocks = 0 # 公鸡
hens = 0 # 母鸡
chick = 0 # 小鸡
count_chicken = 0 # 鸡的总数
count_money = 0 # 钱的总数
status = 0 # 状态控制,满足条件输出,否则就无解。
a =1
for i in range(0, num_chicken):
for j in range(0,num_chicken):
for k in range(0,num_chicken):
count_money = 5 * i + 3 * j + k / 3
count_chicken = i + j + k
if count_chicken == num_chicken and count_money == money:
status = 1
if a ==1:
print("公鸡 母鸡 小鸡")
a=0
print(f"{i} {j} {k}")
if status == 0:
print("无解")
蒙特卡罗法求π值
蒙特卡罗方法适合于根据概率求出图形的面积
根据两个图形的面积求出某一个未知数据量
请随机产生10000个点,判断是否落到一个半径为1的1/4个圆内,
通过概率与一个边长为1的正方形的面积比值
算出π的数值,要求输出强制保留两位小数
import random
random.seed(180)
hit = 0.0 #表示随机点在圆内的次数
#请将代码补充完整
import random
m = 1000000#使用1000000个点进行计算
n = 0.0#计数落在圆中的点
for i in range(1,m+1):
x,y = random.random(),random.random()
dist = pow(x ** 2 + y ** 2,0.5)
if dist <= 1.0:
n = n+1
pi = 4*(n/m)
print("{:.2f}".format(pi))
输入一个数据x
当x为数字时,输出x的平方,否则提示“输入错误”。
x = input()
if x.isdigit():
x = int(x)
print(x**2)
else:
print("输入错误")
分别使用20个宽度右对齐格式
在四行上输出输入数据的二进制、十进制、科学计数法、两位小数
如果输入的不是数据,则输出“输入错误”
try:
x = eval(input())
print("{:>20b}".format(x))
print("{:>20d}".format(x))
print("{:>20e}".format(x))
print("{:>20.2f}".format(x))
except NameError:
print("输入错误")
分段函数计算
输入x的值,计算y值,如果输入正确,输出y值
如果输入错误,输出“输入错误”
分段函数的数值,计算方式如下
y=
x x<500
1.5x 500≤x<1000
2x 1000≤x<2000
3x x≥2000
try:
x = eval(input())
if x<500:
print(x)
elif 500<=x<1000:
print(1.5*x)
elif 1000<=x<2000:
print(2*x)
elif x>=2000:
print(3*x)
except NameError:
print("输入错误")
在一行上输入三个边长,判断是否能构成三角形,
若能构成三角形,则判断该三角形是“等边三角型“、“等腰三角型“还是“一般三角形“
否则输出“不能构成三角形”。
a,b,c = map(int,input().split(','))
if a == b == c:
print("等边三角形")
elif a == b or a==c or b==c:
print("等腰三角形")
elif a+b>c and a+c>b and b+c>a:
print("一般三角形")
else:
print("不能构成三角形")
计算 1 + 1/1! + 1/2! + 1/3! + … + 1/n# 00310034003800350038003900323! .# 00310034003800350038003900323
精度为小数点后6位(即某一项 小于 0.000001就停止运算)
结果输出5位小数
i=ans=n = 1
while n >= 0.000001:
n = n/i
ans += n
i += 1
print("{:.5f}".format(ans))
使用循环打印出下列图形
0
11
222
3333
44444
55555
6666
777
88
9
for i in range(0,10):
if i<5:
print(str(i)*(i+1))
else:
print(str(i)*(10-i))
使用蒙特卡洛法求出曲线y=x*x与x轴之间在0-1范围内的面积
种子数为10
使用100000个点进行计算
结果保留3位小数
import random as rd
rd.seed(10)#种子数
cnt=0
for i in range(100000):
x=rd.random()
y=rd.random()
if y<x*x:
cnt+=1
s=cnt/100000
print(f'{s:0.3f}')
计算阶乘
从键盘上输入一个正整数,求该正整数的阶乘。如:用户输入6,输出720
输入格式
输入的数据请使用以下方式完成,变量名任意,input() 函数中不要添加任何提示信息。
n=input()
输出格式
使用Print基本格式输出
#输入n的值
n=int(input())
ans=n
i=1
if n ==0:
print(1)
else:
#while循环
while i <n:
ans=ans*i
i=i+1
print(ans)
编写打印从n到m之间数据的函数
要求:
函数名为PrintData(x,y)
打印的数据在一行上显示,每个数据以空格分开,打印后不换行
def PrintData(n,m):
for i in range(n,m+1):
print(i,end = ' ')
n,m=map(int,input().split(','))
PrintData(n,m)
00310034003800350038003900321717035499436
编写打印星号三角形函数,使用该函数,传入数据2、3、4打印出如下圣诞树图形
*
***
*
***
*****
*
***
*****
*******
def sj(n):
for i in range(n):
print(' '*(3-i)+'*'*(2*i+1))
sj(2)
sj(3)
sj(4)
编写计算从n到m和的函数
函数名为sum(n,m)
函数返回值为n到m所有数据的和
使用该函数计算输入数据x,y之间所有数据的和
def sum(n,m):
s=0
for i in range(n,m+1):
s=s+i
return s
n,m=map(int,input().split(','))
print(sum(n,m))
编写闰年判断函数
将判断闰年封装为函数,如果是闰年,函数输出True,否则输出False.
闰年判断:(条件1:能被4整除并且不能被100整除),或者 (条件2:能被400整除)
使用该函数输出2010-2020年之间所有闰年
def run(n):
if n%400==0 or (n%100!=0 and n%4==0):
return 'True'
else:
return 'False'
for i in range(2010,2021):
if run(i)=="True":
print(i)
哥德巴赫猜想
哥德巴赫1742年给欧拉的信中哥德巴赫提出了以下猜想:任一大于2的偶数都可写成两个素数之和。
请输出6-20之间所有偶数的所有拆分结果。
输入输出示例
输入 | 输出 | |
示例 1 | 无 | 6=3+3 8=3+5 8=5+3 10=3+7 10=5+5 10=7+3 12=5+7 12=7+5 14=3+11 14=7+7 14=11+3 16=3+13 16=5+11 16=11+5 16=13+3 18=5+13 18=7+11 18=11+7 18=13+5 20=3+17 20=7+13 20=13+7 20=17+3 |
def Isprime(n):
for i in range(2, n):
if n % i == 0:
return False
return True
n = 20
for i in range(6, n + 1):
if i%2==0:
for j in range(2, i - 1):
if Isprime(j) and Isprime(i - j):
print(f'{i}={j}+{i - j}')
编写函数,计算任意数据n的阶乘(不使用递归)
并使用该函数,计算一个输入数据的阶乘值
import math
a=input()
value = math.factorial(int(a))
print(value)
编写递归函数,计算任意数据n的阶乘
并使用该函数,计算一个输入数据的阶乘值
b=eval(input())
def factorial(b):
if b==1:
return 1
else:
return b * factorial(b - 1)
print(factorial(b))
编写函数:把任意十进制整数n转换成k进制数(不使用递归)
输入输出示例
输入n和k的值,
n表示需要转换的数据,
k为需要转换为的进制
n,k = map(int,input("").split(','))
b = ""
while n>0:
y = n%k
n = n//k
b = str(y)+b
print(b)
使用递归编写函数:把任意十进制整数n转换成k进制数
输入输出示例
输入n和k的值,
n表示需要转换的数据,
k为需要转换为的进制
def Convert(n,k):
if n >0:
return Convert(n//k,k)+str(n%k)
else:
return""
n,k = map(int,input("").split(','))
print(Convert(n,k))
编写函数计算两个数据m和n的最大公约数(不使用递归)
算法:
1.对于已知两数m,n,使得m>n;
2.m除以n得余数r;
3.若r=0,则n为最大公约数结束;否则执行步骤4;
4.m ← n,n ← r,再重复执行步骤2。
def MaxDivisor(m,n):
while True:
r = m %n
if r ==0:
return n
m = n
n = r
m,n = map(int,input("").split(','))
print(MaxDivisor(m,n))
使用递归编写函数计算两个数据m和n的最大公约数
算法:
1.对于已知两数m,n,使得m>n;
2.m除以n得余数r;
3.若r=0,则n为最大公约数结束;否则执行步骤4;
4.m ← n,n ← r,再重复执行步骤2。
def MaxDivisor(m,n):
r = m%n
if r==0:
return n
else:
return MaxDivisor(n,r)
m,n = map(int,input("").split(','))
print(MaxDivisor(m,n))
汉诺塔
汉诺塔问题是源于印度一个古老传说的益智玩具。大梵天创造世界的时候做了三根金刚石柱子,在一根柱子上从下往上按照大小顺序摞着64片黄金圆盘。大梵天命令婆罗门把圆盘从下面开始按大小顺序重新摆放在另一根柱子上。并且规定,在小圆盘上不能放大圆盘,在三根柱子之间一次只能移动一个圆盘。
请输出 三个圆盘的情况下,所有的盘移动步骤,格式如下所示:
1 A to C
2 A to B
1 C to B
3 A to C
1 B to A
2 B to C
1 A to C
def Move(n,pos,mid,aim):
if n ==1:
print(1,pos,"to",aim)
else:
Move(n-1,pos,aim,mid)
print(n,pos,"to",aim)
Move(n-1,mid,pos,aim)
Move(3,'A','B','C')
程序中已有1个列表["p","p","y","y","k","k","j","z"]
请编写程序,去掉列表中重复的内容,排序后,打印出来.
ls = ["p", "p", "y", "y", "k", "k", "j", "z"]
result = []
for i in ls:
if i not in result:
result.append(i)
result.sort()
for j in result:
print(j,end=" ")
已有一个列表.A."B."B."C."C.
统计多个数据在列表中出现的次数。
输出按照 A B C的顺序输出(需要排序)
ls=["A","B","B","C","C"]
d = dict()
for i in ls:
if d.get(i):
d[i] += 1
else:
d[i] = 1
d = sorted(list(d.items()), key=lambda e: e[0])
for i in d:
print('{} : {}'.format(i[0], i[1]))
列表的基本操作
在两行中分别输入一个字符串,分别将其转换为列表 a 和 b,按要求完成以下功能:
1. 输出两个列表的拼接结果
2. 输出列表 a 重复3次的结果
3.输出列表 b 中第3个元素和最后一个元素
4.输出列表 a 中序号1至4之间的元素
5. 输出列表 a 、b的长度,结果用逗号分隔
6. 输出列表 a 的中元素的最小值和 b 中元素的最大值
输入
输入有两行,每行输入一个字符串(a 长度不小于5,b 长度不小于3)
a = list(input())
b = list(input())
print(a + b)
print(a * 3)
print(b[2],b[-1],sep = ' ')
print(a[1:4])
print(len(a),len(b),sep = ',')
print(min(a),max(b))
接收用户输入的多个数据,直到输入为空时停止
将用户输入的一组数据放入列表中存放
编写对列表进行统计的函数
包括:
计算列表的平均数,并返回数据
计算列表中的方差,并返回数据
计算列表中的中位数,并返回数据
使用这些函数和python自带的len()函数输出
1 列表中数据的个数
2 列表数据和和
3 列表数据的平均值
4 列表数据的方差
5 列表的中位数
#请在此行下方编写函数
def getNum():
ls = []
while True:
num = input()
if num:
ls.append(eval(num))
else:
break
return ls
def avg(ls):
s = 0
for i in ls:
s += i
return s / len(ls)
def dev(ls):
a = avg(ls)
s = 0
for i in ls:
s += (i-a)**2
return s/len(ls)
def median(ls):
ls.sort()
if len(ls)%2 != 0:
return ls[len(ls)//2]
else:
return (ls[len(ls)//2]+ls[len(ls)//2-1])/2
ls=getNum()
print("数量",len(ls))
print("和",sum(ls))
print("平均值",avg(ls))
print("方差",dev(ls))
print("中位数",median(ls))
列表的合并与排序
读入两行,两行的格式一样,都是用空格分隔的若干个整数,将这些数合并到一个列表中,降序排列后输出整个列表。
提示: list1 = list(map(int,input().split())) #读入一行由空格分隔的整数,将其存入list1列表中 输入格式
输入为两行,两行格式一样,都是用空格分隔的若干个整数(整数个数可能为0个)。
输出格式
输出为一行,是元素按降序排列后的整数列表。
lst_a = input().split() # 输入转为列表
lst_b = input().split() # 输入转为列表
lst_ab = lst_a + lst_b # 两个列表拼接为一个列表
lst_int = [int(x) for x in lst_ab] # 将列表lst_ab中的元素转为整数,产生新列表
lst_int.sort(reverse=True) # 列表原地排序,逆序
print(lst_int) # 输出排序后的列表