1.直角坐标系象限判断:
while True:
try:
list1 = [int(i) for i in input().split()]
if(list1[0]>0 and list1[1]>0):
print("1")
elif(list1[0]>0 and list1[1]<0):
print('4')
elif(list1[0]<0 and list1[1]>0):
print('2')
else:
print('3')
except:
break
实现多组的输入与输出可以用try-except方法实现
2.计算分段函数:
num = float(input())
def g(num):
if num==0:
print("g(%.3f) = %.3f"%(0,0))
else:
num2 = 1/(2*num)
print('g(%.3f) = %.3f'%(num,num2))
g(num)
这里要注意的是格式化输出两个数时的写法,以及转换为浮点类型
3.汽车超速罚款
list1 = [int(i) for i in input().split()]
if(list1[0]>list1[1]):
print('Congratulations, you are within the speed limit!')
else:
if(list1[1]-list1[0] <= 20):
print('You are speeding and your fine is 100.')
elif(20< (list1[1]-list1[0]) <=30):
print('You are speeding and your fine is 270.')
else:
print('You are speeding and your fine is 500.')
没有需要注意的点
4.运输计费问题:
//list1 = [float(i) for i in input().split()]
//a = list1[0]
//b = list1[1]
a, b = map(float,input().split())
if a > 0:
if 0 <= b < 250:
print(round(a * b * 1.0))
elif 250 <= b < 500:
print(round(a * b * 0.98))
elif 500 <= b < 1000:
print(round(a * b * 0.95))
elif 1000 <= b < 2000:
print(round(a * b * 0.92))
elif 2000 <= b < 3000:
print(round(a * b * 0.90))
elif 3000 <= b:
print(round(a * b * 0.85))
else:
print(0)
else:
print(0)
要注意的是print(0),如果没有的话会提示非零返回,这里的a与b必须是float类型,不然会非零返回,然后是round函数,返回一个四舍五入的值,map函数获取两个int类型也需要注意。
5.阶梯电价:
cos1 = 0.53
num1,x=map(float,input().split())
if 0<num1<=50:
print('cost=%.2f'%(num1*cos1))
elif num1>50:
cost = 50*cos1 + (num1-50)*(cos1+x)
print('cost=%.2f'%cost)
else:
print('cost=0.00')
6.分段计算居民水费:
num1 = float(input())
if num1<=15:
print('%.2f'%(4*num1/3))
else:
print('%.2f'%(2.5*num1-17.5))
7.循环-乘法运算:
num1 =int(input())
for i in range(1,num1+1):
print('%d*%d=%d'%(i,num1,i*num1))
8.求π的近似值:
from math import *
num1 = float(input())
PI = 0.0
for i in range(1,10000000):
if(1/i**2)<num1:
break
else:
PI += 1/(i**2)
print('%f'%(sqrt(PI * 6)))
小于误差值的那一次不要加
9.求误差
n = float(input())
a, b = 1, 2
i = m = 1
while b - a > n:
i += 1
m *= i
a, b = b, b + 1 / m
print("%.6f" % b)
10.求和:
num1 = input()
num2 = int(input())
res = 0
for i in range(1,num2+1):
str = num1*i
res +=int(str)
print(res)
方法很简单,第一个获取的数设置为字符,而字符*int类型会生成字符串,比如'6'*2='66',然后将这个字符串转换为int类型再加起来就行了。
11.A+B
while True:
try:
num1,num2 = map(int,input().split())
print(num1+num2)
except:
break
经典弱智题
12.A+B Plus
num1 = int(input())
for i in range(num1):
num2,num3 = map(int,input().split())
print(num2+num3)
13.A+B PlusMax
while True:
try:
num1,num2 = map(int,input().split())
if num1==0 and num2==0:
break
print(num1+num2)
except:
break
加个判断条件直接跳出去
14.A+B PlusProMax
from typing import List
while True:
try:
List1 = [int(i) for i in input().split()]
if sum(List1)==0:
break
else:
print(sum(List1)-List1[0])
except:
break
用sum求和然后把第一个减去
15.7-9 sdut-入门-5 A+B for Input-Output Practice (V)
from typing import List
num1 = int(input())
for i in range(num1):
List1 = [int(i) for i in input().split()]
print(sum(List1)-List1[0])
16.7-10 sdut-入门-6 A+B for Input-Output Practice (VI)
from typing import List
while True:
try:
List1 = [int(i) for i in input().split()]
print(sum(List1)-List1[0])
except:
break
17.7-11 sdut-入门-7 A+B for Input-Output Practice (VII)
while True:
try:
a,b = map(int,input().split())
print(a+b)
print()
except:
break
18.sdut-入门-8 A+B for Input-Output Practice(VIII)
num1 = int(input())
for i in range(num1):
List1 = [int(i) for i in input().split()]
print(sum(List1)-List1[0])
print()
19.九九乘法表
while True:
try:
num1 = int(input())
for i in range(1,num1+1):
for j in range(1,i+1):
if j<i:
print('%d*%d=%d'%(j,i,j*i),end=' ')
else:
print('%d*%d=%d'%(j,i,j*i))
except EOFError:
break
20.sdut-平方数:
from math import *
num1 = int(input())
for i in range(num1):
count = 0
a,b = map(int,input().split())
if a>b:
a,b = b,a
for j in range(a,b+1):
if (int(sqrt(j))**2) ==j:
count += j
print(count)
前边的数不一定一定比后边的小奥
21.7-15 sdut-求交错序列前N项和:
num1 = int(input())
count = 0.0
for i in range(1,num1+1):
if i%2==0:
count += -1*(i/(i*2-1))
else:
count += i/(i*2-1)
print('%.3f'%count)
找数组规律,分子奇数时为正数,分子偶数时为负数,分母等于分子*2-1
22.7-16 sdut-生成输入数的乘方表:
a,b = map(float,input().split())
num = int(b)
for i in range(0,num+1):
print('%.1f**%d=%.2f'%(a,i,pow(a,i)))
float放不进range里面
23.判断素数
from math import *
num1 = int(input())
for i in range(num1):
num2 = int(input())
flag=0
for i in range(2,num2):
if num2%i==0:
flag+=1
if flag==0:
print('Yes')
else:
print('No')
24.水仙花
num = int(input())
for i in range(10**(num-1),10**num):
s = str(i)
List1 = [int(i)**num for i in s]
if sum(List1) == i:
print(sum(List1))
25.最大公约数与最小公倍数:
while True:
try:
a,b = map(int,input().split())
c = min(a,b)
for i in range(1,c+1):
if a%i==0 and b%i==0:
count1 = i
count2 =int((a*b)/count1)
print(count1,count2,sep=' ')
except:
break
26.求分数序列前N项和
def f(n):
if n==1:
print('%.2f'%(2/1))
else:
count = 2.0
num1,num2 = 2,1
for i in range(2,n+1):
count +=(num1+num2)/num1
num1,num2 = num1+num2,num1
print('%.2f'%(count))
num = int(input())
f(num)
27.冒泡排序次数
def maopao_sort(list):
count = 0
un_sorted_len = len(list)-1
sorted = False
while not sorted:
sorted = True
for i in range(un_sorted_len):
if list[i]>list[i+1]:
sorted = False
list[i],list[i+1] = list[i+1],list[i]
count+=1
un_sorted_len = un_sorted_len - 1
return count
num = int(input())
for i in range(num):
st1 = [int(i) for i in input().split()]
del st1[0]
count1 = maopao_sort(st1)
print(count1)
28.单链表数据的拆分
num = int(input())
List1 = [int(i) for i in input().split()]
List_j =[]
List_o =[]
for item in List1:
if item%2==0:
List_o.append(item)
else:
List_j.append(item)
print(len(List_o),len(List_j),sep=' ')
for i in range(len(List_o)):
if i==len(List_o)-1:
print(List_o[i],end='')
else:
print(List_o[i],end=' ')
print()
for i in range(len(List_j)):
if i==len(List_j)-1:
print(List_j[i],end='')
else:
print(List_j[i],end=' ')