目录
1.一组数找最大值
用了列表
numbers=[]#建立空的列表
while True:
num = input().split()#1 2 3 0 有空格的一组数输入
for n in num:
n = int(n)#记得每个字符串遍历的时候要转化成int
if n == 0:
break
numbers.append(n)
if n == 0:#这里还要有一遍,使得大循环出来
break
max_number = max(numbers)#用max函数求最大值
counter = numbers.count(max_number)#查询列表中某个数出现的个数
print(max_number,counter)
不用列表:
max_num = float('-inf')#设最大初始值为负无穷
count = 0
num = input().split()
for n in num:
n = int(n)
if n == 0:
break
if n > max_num:
max_num = n
count = 1
elif n == max_num:
count += 1
print(max_num,count)
3.分数序列求和
n=int(input())
sum=0
a=0
for i in range(1,n+1):#range是左闭右开
a=i+a
b=1/a
sum=sum+b
print(f"{sum:.2f}")
4. 使用格里高利公式求π的近似值
import math
n = int(input())
sum = 0.0
fenmu = 1 #分母
a = 1 #加减变化
term = a/fenmu #每一项
while abs(term) > 10 ** -n:#最后一项绝对值小于10的-n次幂
sum = sum + term
fenmu += 2
a= a * (-1)
term = a/fenmu
pi_app = 4 * sum
print(f"{pi_app:.5f}")
5.计算1*2+3*4+5*6+…+n*(n+1)
import math
n = int(input())
sum = 0
b = int((n+1)/2)
for i in range(1,b+1):
a = (2*i-1) * (2*i)
sum += a
print(sum)
6.统计整数的位数 ( 这道题竟然没一次做对!)
注意输入 为0 的情况
import math
a = int(input())
m = abs(a)
i = 0
if a == 0:
i =1
while m > 0:
i += 1
m = m // 10
print(i)
10.验证哥德巴赫猜想( !)
import math
n = int(input())
def prime(x):
m = x
for i in range(2,x):
if(m%i==0):
return False
return True
for j in range(2,n):#真是奇怪,这里不能从1开始,不允许输出1的那对
if(prime(j) and n-j > n//2 and prime(n-j)):#只用输入小 大的那一半
print(j,n-j)
11.判断回文数( !)
a = int(input())
num = a
rev = 0
while(num>0):
r = num%10
num = num//10
rev = rev*10 + r
if rev == a:
print(f"{a} yes")
else:
print(f"{a} no")
12.元音字母统计程序
word = input()
count = 0
for w in word:
if w in 'aeiou':
count += 1
print(count)
13.十进制转换成 N 进制( !)
a,b = map(int,input().split())
list = ""#设置一个空列表,来储存最后的结果,把结果全部变成字符串
while a:
yu = a%b
list = str(yu) + list#将余数变成字符串 相加的位置不能变!!!不然就会输出是相反的
a = a//b#切记要加上
print(list)
16.猴子吃桃( !)
n = int(input())
x = 1
for i in range(0,n-1):#注意这里是n-1!!!
x = (x+1)*2
print(x)
18.球的反弹高度
import math
n = int(input())
sum = 100.00
a = 100.00
if n == 1:
print("%.2f %.2f" % (sum,a/2))
else:
for i in range(1,n):
sum += a
a /= 2
a /=2
print("%.2f %.2f" % (sum,a))
19. 小写字母转换为大写字母
string = input()
result = ""
for c in string:
if c.islower():
result += c.upper()
else:
result += c
print(result)
22. 完数判断程序( !)
'+'.join(map(str, factors))
:这部分使用了两个方法来构建一个字符串。首先,map(str, factors)
将 factors
列表中的每个元素转换为字符串类型。然后,'+'.join(...)
使用 +
符号将这些字符串连接起来,每个字符串之间用 +
符号分隔。
import math
n = int(input())
result = []#这里要用列表,而非空字符
for i in range(1,n):
if(n%i==0):
result.append(i)
if(sum(result)==n):
print(f"{n}={'+'.join(map(str,result))}")
elif(sum(result)>n):
print(f"{n}<{'+'.join(map(str,result))}")
elif(sum(result)<n):
print(f"{n}>{'+'.join(map(str,result))}")
26.两个分数求和( !)
a,b = input().split()
a1,a2 = map(int,a.split('/'))
b1,b2 = map(int,b.split('/'))
def gcd(m,n):
while m % n:
m,n = n,m % n
return n
g = gcd(a2,b2)
fenmu = a2*b2//g
fenzi = a1*(fenmu//a2) + b1*(fenmu//b2)
g2 = gcd(fenzi,fenmu)
fenmu = fenmu // g2
fenzi = fenzi //g2
print(f"{fenzi}/{fenmu}")
split('/')
来解析输入的分数字符串。通过调用 split('/')
方法,将输入的字符串按照 /
进行分割,并得到一个包含分子和分母的字符串列表。
然后,使用 map(int,fraction1_input.split('/'))
将分子和分母的字符串转换为整数类型。
20.共有多少种解决方案
m = int(input())
r = 3
w = 5
b = 6
count = 0
for rn in range(1,r+1):#拿到的红球数量
for wn in range(0,w+1):#拿到的白球的数量
for bn in range(0,b+1):
if(rn + wn + bn == m):
count += 1
print(count)