python练习题

#字符串的倒序输出


s=input()
s=s[::-1]
print(s)

#统计字符个数


s=input()
a=input()
n=s.count(a)
print(n)

#字符串练习


s=input()
print(s.lower())    #小写
print(s.upper())    #大写
t=s.split()
print(t)
print('.'.join(t))
r=s.replace('the','a')  #替换
r1=s.replace('the','a',1)# 将字符串s中的第一个'the'替换为'a',替换后的字符串重新命名为r
print(r1)
print(r)

#判断简单数据类型


s=input()
if ('j' or 'J') in s:
    print("复数")
elif '.' in s:
    print('浮点数')
else:
    print('整数')

#一元二次方程求根


import math
a=eval(input())
b=eval(input())
c=eval(input())
d=math.sqrt(b*b-4*(a*c))
if a==0 and b==0:
    print("数据有误")
elif a==0:
    x=-c/b
elif d<0:
    print("无解")
elif d==0:
    x1=-b/(2*a)
    print(x1)
else:
    x1=(-b+d)/(2*a)
    x2=(-b-d)/(2*a)
    print(x1,x2)

#阶乘和数


n=input()
sumk=0
for i in range(len(n)):
    m=int(n[i])
    for j in range(1,m):
        m=m*j
    sumk+=m

if str(sumk)==n:
    print('yes')
else:
    print('no')

#水仙花数


for i in range(100,1000):
    sumk=0
    g=i%10
    s=i//10%10
    b=i//100%10
    sumk=g**3+s**3+b**3
    if sumk==i:
        print(sumk)

#分数序列求和

'''有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前n项之和,n由用户输入。'''
n=eval(input())
a,b=2,1
sumk=a/b
for i in range(1,n):
    a1=a
    a=a+b
    b=a1
    sumk=a/b+sumk
print(sumk)

#用户登录C

'''实现用户输入用户名和密码,当用户名为 admin或administrator且密码为123456时,
显示“登录成功”,否则显示“登录失败”,登录失败时允许重复输入三次。'''
i=0
while(i<3):
    a=input()
    b=input()
    if((a=='admin' or a=='administrator') and b=='123456'):
        print("登录成功")
    else:
        print("登录失败")
    i=i+1

#百分制成绩转换五分制F

try:
    a=eval(input())
    a=float(a)
except:
    print("data error!")
else:
    if a<=100.0 and a>=90.0:
        print('A')
    elif a<90.0 and a>=80.0:
        print('B')
    elif a<80.0 and a>=70.0:
        print('C')
    elif a<70.0 and a>=60.0:
        print('D')
    elif a<60.0 and a>=0.0:
        print('E')
    else:
        print("data error!")


        
#温度转换异常处理


f=0
c=0
try:
    temp=input()
    if temp[-1] in ['C','c']:
        f=eval(temp[0:-1])*1.8+32
        print(str.format("{:.2f}",f)+"F")
    elif temp[-1] in ['F','f']:
        c=(eval(temp[0:-1])-32)/1.8
        print(str.format("{:.2f}",c)+"C")
    else:
        print("输入错误,末位只能是'C','c','F','f'")
except NameError:
    print("试图访问的变量名不存在")
except SyntaxError:
    print('存在语法错误')

#判断数据类型
s = input()
try:   
    s=eval(s)       #转换数据
    if isinstance(s, int):  
        print("int")  
    elif isinstance(s, float):  
        print("float")  
    elif isinstance(s, complex):  
        print("complex")  
    else:  
        print("string")  
except BaseException:  
    print("string")

#正整数A+B


s=input()
a,b=s.split(maxsplit=1)
try:
    if a.isdigit():
        a=int(a)
        if not(a in range(1,1001)):
            a='?'
    else:
        a='?'
except:
    a='?'
try:
    if b.isdigit():
        b=int(b)
        if not(b in range(1,1001)):
            b='?'
    else:
        b='?'
except:
    b='?'
if a == '?' or b == '?':
    print('{} + {} = {}'.format(a, b, '?'))
else:
    print('{} + {} = {}'.format(a,b,a+b))

#判断素数函数


'''写一个函数isPrime(n)用于判断一个数字n是不是素数,
用户输入一个正整数,在一行内输出不大于该数的所有素数,各数后面用一个空格分隔。'''
import math
def isPrime(n):          #判断素数的函数
    if n < 2:
        return False     #0和1不是素数
    for i in range(2, int(math.sqrt(n))+1):
        if n % i == 0:
            return False
            break
        # for中的break与int(math.sqrt(n))+1是提高代码效率(减少运行时间)
    else:
        return True
num = int(input())        #接收用户输入并转成整数
for i in range(num+1):
    if isPrime(i):
        print(i,end=' ')  #在同一行内输出结果,不换行,中间用空格分隔

#汉诺塔

def hanoi_move(n, a, b, c):
    """接收一个表示圆盘数量的整数n和三个表示柱子的字符,打印输出把n个圆盘从第一个柱子移动到第三个柱子的过程。"""
    if n == 1:                      # 终止条件,当只有一个圆盘时,从A移动到C后结束程序
        print(a, '-->', c)
        return None
    else:                           # 递归调用,每调用一次圆盘次减少一个
        hanoi_move(n - 1, a, c, b)  # 首先需要把 (N-1) 个圆盘移动到 b
        hanoi_move(1, a, b, c)      # 将a的最后一个圆盘移动到c
        hanoi_move(n - 1, b, a, c)  # 再将b的(N-1)个圆盘移动到c
 
 
if __name__ == '__main__':          # 使前面定义的函数可以被其他模块调用
         num = int(input())              # 输入最初圆盘数量
         s1, s2, s3 = input().split()    # 输入表示柱子的字符,例如输入A B C
         hanoi_move(num, s1, s2, s3)     # 调用递归函数移动圆盘

#打包传参


def say_hi_multi_parameter(*names):    # 括号里填空
    """定义一个不定参数传递函数,可接收不限数量的参数。"""
    for name in names:                         # 遍历输出,观察结果
        print(name+",你好!")


say_hi_multi_parameter('孟浩然')
say_hi_multi_parameter('杜甫', '李白', '柳宗元', '李商隐')

#列表的合并与排序


list1=list(map(int,input().split()))
list2=list(map(int,input().split()))
list3=list1+list2
list3=sorted(list3)
print(list3)

#多用户登录(列表)


name=["aaa","bbb","ccc"]
key=["123456","888888","333333"]

n=input()
if n in name:
    k=input()
    num=name.index(n)
    if k == key[num]:
        print("succes")
    else:
        print("fail")
else:
    print("无")

#两数之和


'''给定一个整数列表 nums 和一个目标值 target,请你在该数组中找出和为目标值的那两个整数,
并返回他们的列表索引。每种输入只需要对应一个答案。但是,你不能重复使用这个数组中同样位置的元素。
如果没找到解,输出“Fail”'''

num=input()
nums =list(map(int, num.strip().split()))  
target=eval(input())
la=[]
lb=[]
for i in range(len(nums)):
    j=i+1
    for j in range(len(nums)):
        if target==nums[i]+nums[j] and i!=j:
            la.append(i)
            lb.append(j)
if len(la)>0:
    print(min(la),lb[la.index(min(la))])
else:
    print("Fail")

#字典翻转输出


s = input()
try:
    d = eval(s)
    e = {}
    for k in d.keys():
        e[d[k]] = k
    print(e)
except:
    print("输入错误")

#“哥德巴赫猜想”


def Prime(number):
    flag = 0
    if number <= 1:
        return 0
    else:
        for i in range(2,int(number**0.5)):#number**0.5即根号下number
            if number%i == 0:
                flag = 1
                break
    if flag == 1:
        return 0
    else:
        return 1
    
num = int(input())
for i in range(int(num)):
    if Prime(i) == 1 and Prime(num-i) == 1:
        print("%s = %s + %s" % (num,i,num-i))
        break

  • 21
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值