Python基础必遇到的问题(进制转换,判断头尾,公约/倍数,最大/小值,数值问题,n阶乘法,面积问题,求和)

输入一个整型变量:a=int(input())

a,b = input().split()          #此时得到的a和b的类型均为字符串,以空格为分隔符
a,b = input().split(',')        #此时得到的a和b的类型均为字符串,以逗号为分隔符
a,b = map(int,input( ).split( )) #输入的两个数是int类型
list=list(int,input().splist())    # 输入n个数字 输入的是数放在列表上
#此时得到的a和b的类型为整数,以空格为分隔符
list1=[]
list1=list(map(int,input().splist()))

1.实现简单直接的相加

a,b=map(int,input().split())
print(a+b)

2.实现简单的奇数求和(偶数求和也是这样的原理)

n = int(input())
sum = 0
for i in range(1,2*n,2):
    sum = sum + i
print(sum)

2.1 实现简单的序列求和

n = int(input())
sum = 0
for i in range(0,n+1):
    sum = sum + i
print(sum)

3 面积问题(涉及保留小数点位数,输入int类型,输出为实数(float类型))

3.1 矩阵的求和问题

width=float(input())    #定义为实数类型
hight=float(input())    #定义为实数类型
arc=width*hight
print('%.7f'%arc)       #输出的实数是保留7位,输出的格式是print(‘-这个是你想输入的内容%.7f-%已定义的变量)

3.2 圆的面积

import math
n=int(input())
pi=math.pi           #输出圆周率(在没有表明Pi的值是3.14时,就要用math这个包)
Sar=pi*n*n
print('%.7f'%Sar)

扩展

#这个是在输出要求上进行约束,round(area,2)对这个area数值进行保留两位数操作,
width = eval(input())
length = eval(input())
area = width * length
print(round(area,2))  #round(x[,ndigits])四舍五入,保留ndigits位小数,round(x)返回四舍五入整数值

#print('{:.2f}'.format(a*b))     这个输出方式跟上面round(,)函数的方式用法是一样的,效果也是一样的,都是在对这个最后一位进行四舍五入

#print('%.7f'%Sar)  这个效果跟上面两种的舍去方式是一样的

4.累乘问题

4.1 2的n阶累乘

方式一:

n=int(input())
snm=1
for i in range(n):
    snm*=2
print(snm)

方式二:

n = eval(input())
print(pow(2,n))   #pow(x,y[,z])同x**y%z,常省略z,用于计算x的y次方
'''
pow() 方法pow(x, y[, z])

函数是计算x的y次方,如果z在存在,则再对结果进行取模,其结果等效于pow(x,y) %z
'''

4.2 n的阶乘

n = int(input())
#print(math.factorial(n)) #math库里有factorial(n)函数可直接求解n的阶乘,可用于替换下面4行程序
fact = 1
for i in range(1,n+1):    #range()默认从0开始,这里range(1,n+1)表示从1 开始取值1至n
    fact = fact * i
print(fact)

5.数值问题

5.1 max

方法一:

a = float(input())  #输入输出都是浮点数,不能用eval()
b = float(input())
c = float(input())
print(max(a,b,c)) #max(x1,x2,x3...xn)函数可用于求出x1,x2,x3...xn中的最大值

方法二:

a = float(input())  #输入输出都是浮点数,不能用eval()
b = float(input())
c = float(input())
if a>b :
    if b > c:
        print("最大的值是:",a)
    else:
        if c>b and a>c:
            print("最大的值是:",a)   
elif b>a:
    if a > c:
        print("最大的值是:",b)
    else:
        if c>a and b>c:
            print("最大的值是:",b)   
else:
    if b > a:
        print("最大的值是:",c)
    else:
        if a>b and c>a:
            print("最大的值是:",c)   

5.2.绝对值

n = eval(input())  #eval可保持输入类型
print(abs(n))     #abs()是求绝对值函数

5.3.输入n数值,求和,取最大,取最小

list1=[]
n=int(input())
list1=list(map(int,input().split()))
print(list1)
sum=0
for i in range(n):
    sum+=list1[i]
    max(list1)
    min(list1)
print("和:{:d}".format(sum))
print("最大值:{:d}".format(max(list1)))
print("最小值:{:d}".format(min(list1)))

5.4.最大公约数和最小公倍数

方式一:

import math
num1 = int(input())
num2 = int(input())
print( math.gcd(num1,num2),int(num1*num2/math.gcd(num1,num2)))

方式二:

def gcd(x, y):
    if x > y:
         smaller = y
    else:
         smaller = x
         
    for i in range(1, smaller + 1):
        if ((x % i == 0) and (y % i == 0)):
            gcd = i
    return gcd
 
 
def lcm(x, y):
    if x > y:
        greater = x
    else:
        greater = y
 
    while (True):
        if ((greater % x == 0) and (greater % y == 0)):
            lcm = greater
            break
        greater += 1
 
    return lcm
num1 = int(input())
num2 = int(input())
 
print( gcd(num1, num2),lcm(num1,num2))

6.判断头部跟结尾

a = input()
if a[:2]=='PY':
    print('YES')
else:
    print('NO')
#在这里同样可以判断输入的汉字是尾部还是头部上的
Tem=input()
if Tem[-1] in ['F','f']:
	C=(eval(Tem[0:-1])-32)/1.8
	print("{:.2f}C".format(C))
elif Tem[-1] in ['C','c']:
	F=eval(Tem[0:-1])*1.8+32
	print("{:.2f}F".format(F))
else
	print("输入的格式错误")

7.对给出的数值进制转换

7.1 实现十六进制转换八进制

def main():
    n=int(input())
    lst=[]
    for i in range(n):
        num1=input()
        lst.append(num1)
    for num2 in lst:
    	print( '{:o}'.format(int(('0x'+num2),16)))
main()

7.2 二进制转十进制

print(str(int("101",2)))   #这个是将转换的二进制数转换成十进制int"101{这里是而二进制参数}",这个是进制的位数)
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值