Python:流程控制

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=' ')

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值