2-16进制甚至更高进制转换:
10进制数转换为其他进制,可通过拓展列表a来进行更高进制的处理
def decimal_to_n(number,n):
a = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9',\
'A', 'B', 'C', 'D', 'E', 'F']
ls = []
while((number//n) !=0):
ls.append(a[number%n])
if((number//n)<n):
ls.append(a[number//n])
break
else:
number = number//n
return ls
inp = int(input())
n = int(input())
l=decimal_to_n(inp,n)
l.reverse()
for i in range(len(l)):
print(l[i], end="")
字符串反转/倒序:
递归处理
def reverse(s):
if s == "":
return s
else:
return reverse(s[1:]) + s[0]
s=(input())
print(reverse(s))
输出一段斐波那契数列 fibonacci sequence:
def fib(n):
return n if n <= 1 else fib(n-1)+fib(n-2)
N = 20 #n为显示的个数
print([fib(n) for n in range(N)])
判断、输出一定范围的闰年 leap year:
#输出一千年内的闰年
for i in range(1000):
if(i%4!=0):
continue
elif(i%400==0):
print(i,end=" ")
elif(i%100==0):
continue
else:
print(i,end=" ")
判断、输出一定范围的素数 primer number:
#素数
def isPrime(n):
if(n<2):
return 0
elif(n==2):
return 2
else:
for i in range(int(pow(n,0.5))):
if(n%(i+2)==0):
return 0
return n
for i in range(10000):
result=isPrime(i)
if(result!=0):
print(result,end=" ")
用户登录(三次机会)
给用户三次输入用户名和密码的机会,要求如下:
1)如输入第一行输入用户名为‘Kate’,第二行输入密码为‘666666’,输出‘登录成功!’,退出程序;
2)当一共有3次输入用户名或密码不正确输出“3次用户名或者密码均有误!退出程序。”。
for i in range(3):
if(input()=="Kate"and input()=="666666"):
print("登录成功!")
break
if(i==2):
print("3次用户名或者密码均有误!退出程序。")
四叶玫瑰数
四叶玫瑰数是4位数的自幂数。自幂数是指一个 n 位数,它的每个位上的数字的 n 次幂之和等于它本身。(例如:当n为3时,有1^3 + 5^3 + 3^3 = 153,153即是n为3时的一个自幂数,3位数的自幂数被称为水仙花数)
for i in range(1000,10000):
a = int(i/1000)
b = int((i%1000)/100)
c = int((i%100)/10)
d = int(i%10)
if pow(a,4)+pow(b,4)+pow(c,4)+pow(d,4)==i:
print(i)
合格率计算
输入一个数字n作为合格标准,然后,输入一系列的数字,每次输入换行表示,空换行结束,输出合格率。
合格率指输入元素中合格元素与全部元素的比值。
n=eval(input())
List=[]
i=input()
while i !='':
List.append(eval(i))
i=input()
sum_up=0
for i in List:
if i>=n:
sum_up+=1
if len(List)==0:
print("合格率为100.00%")
else:
x=100*(sum_up/len(List))
print("合格率为{:.2f}%".format(x))
平方值格式化
获得用户输入的一个整数N,计算N的平方值;结果采用宽度20字符方式居中输出,空余字符采用减号(-)填充。
如果结果超过20个字符,则以结果宽度为准。
inp=eval(input())
result=inp**2
length=len(str(result))
if(length<=20):
for i in range(int((20-length)/2)):
print('-',end="")
print(result,end="")
if(length%2==0):
for i in range(int((20-length)/2)):
print('-', end="")
else:
for i in range(int((20-length)/2+1)):
print('-',end="")
else:
print(result)
同符号数学运算
读入一个整数N,分别计算如下内容:
1. N的绝对值;
2. N与10进行同符号加法、减法和乘法运算,同符号运算指使用N的绝对值与另一个数进行运算,运算结果的绝对值被赋予N相同的符号,其中,0的符号是正号。
将上述4项结果在一行输出,采用空格分隔,输出结果均为整数。
inp =int(eval(input()))
ab = int(abs(inp))
ad = int(abs(inp))+10
sub = abs(int(abs(inp))-10)
mat = int(abs(inp))*10
ist=1
if(int(inp)<0):
ist=0
if(ist==1):
print(ab,end=" ")
print(ad,end=" ")
print(sub,end=" ")
print(mat)
else:
ad=-ad
sub=-sub
mat=-mat
print(ab,end=" ")
print(ad,end=" ")
print(sub,end=" ")
print(mat)
星号三角形 I
读入一个整数N,N是奇数,输出由星号字符组成的等边三角形,要求:
第1行1个星号,第2行3个星号,第3行5个星号,依次类推,最后一行共N的星号。
inp=int(eval(input()))
line=(inp+1)/2
space=int((inp-1)/2)
for i in range(int(line)):
for j in range(space):
print(' ',end='')
space=space-1
for k in range(i*2+1):
print("*",end="")
for j in range(space):
print(' ', end='')
if(i!=line-1):print(" ")
恺撒密码 I
凯撒密码是古罗马凯撒大帝用来对军事情报进行加解密的算法,它采用了替换方法对信息中的每一个英文字符循环替换为字母表序列中该字符后面的第三个字符,即,字母表的对应关系如下:
原文:A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
密文:D E F G H I J K L M N O P Q R S T U V W X Y Z A B C
对于原文字符P,其密文字符C满足如下条件:C=(P+3) mod 26
上述是凯撒密码的加密方法,解密方法反之,即:P=(C-3) mod 26
假设用户可能使用的输入仅包含小写字母a~z和空格,请编写一个程序,对输入字符串进行凯撒密码加密,直接输出结果,其中空格不用进行加密处理。使用input()获得输入。
str=input()
for i in str:
asc=ord(i)
if(asc>96 and asc<120):
asc=asc+3
j=chr(asc)
print(j,end='')
elif(asc==120):
print('a',end='')
elif(asc==121):
print('b',end='')
elif(asc==122):
print('c',end='')
else:
print(' ',end='')
长度转换 I
请编写程序,完成米和英寸之间的长度转换,基本需求如下:
输入英寸,转换成米;
输入米,转换成英寸。
英寸采用in标记,放在数值结尾;米采用m标记,放在数值结尾。
1 米 = 39.37 英寸
输入参数请使用input(),不要增加提示字符串信息。
inp=input()
if (inp[-1]=='m'):
oup=eval(inp[0:-1])*39.37
print("{:.3f}in".format(oup))
elif(inp[-1]=='n'and inp[-2]=='i'):
oup=eval(inp[0:-2])/39.37
print("{:.3f}m".format(oup))
N的多次方
编写一个程序,计算输入数字N的0次方到5次方结果,并依次输出这6个结果,输出结果间用空格分隔。其中:N是一个整数或浮点数。
value = eval(input())
list= []
for i in range(6):
num = value ** i
list.append(str(num))
print(" ".join(tuple(list)))
温度转换 II
温度的刻画有两个不同体系:摄氏度(Celsius)和华氏度(Fabrenheit)。
请编写程序将用户输入华氏度转换为摄氏度,或将输入的摄氏度转换为华氏度。
转换算法如下:(C表示摄氏度、F表示华氏度)
C = ( F - 32 ) / 1.8
F = C * 1.8 + 32
要求如下:
(1) 输入输出的摄氏度采用大写字母C开头,温度可以是整数或小数,如:C12.34指摄氏度12.34度;
(2) 输入输出的华氏度采用大写字母F开头,温度可以是整数或小数,如:F87.65指摄氏度87.65度;
(3) 不考虑异常输入的问题,输出保留小数点后两位;
(4) 使用input()获得测试用例输入时,不要增加提示字符串。
value = input()
result = 0
if value[0:1] == "C":
result = eval(value[1:]) * 1.8 + 32
print("F%.2f"%result)
elif value[0:1] == "F":
result = (eval(value[1:]) - 32) / 1.8
print("C%.2f"%result)
货币转换 I
人民币和美元是世界上通用的两种货币之一,写一个程序进行货币间币值转换,其中:
人民币和美元间汇率固定为:1美元 = 6.78人民币。
程序可以接受人民币或美元输入,转换为美元或人民币输出。人民币采用RMB表示,美元USD表示,符号和数值之间没有空格。
s = input()
if s[0] in ['R', 'r']:
u = eval(s[3:]) / 6.78
print("USD{:.2f}".format(u))
else:
r = eval(s[3:]) * 6.78
print("RMB{:.2f}".format(r))