华为部分机试题目,个人纯手工解答如下(仅供参考):
#大小写转换的程序
string = input("Enter your string,and I'll show you its interchanging style:").swapcase()
print(string)
input("\nPress the enter key to quit.")
'''
def swapstr():
str=input('enter your string:')
swapstr=str.swapcase()
return swapstr
print(swapstr())
'''
#1从一个输入字符串中找出重复的字符,将其按从小到大排列
a=input()
b=[]
c=[]
for i in a:
if a.count(i) == 1:
b.append(i)
elif i in c:
continue
else:
c.append(i)
print(sorted(c))
c = sorted(c)
for i in range(-1,-len(c)-1,-1):
print(c[i],end = " ")
#2从一个字符串中得到指定字符的个数。不区分大小写。
str1 = input("Enter a string:").lower()
str2 = input("Enter a character:").lower()
number = str1.count(str2)
print(number)
#3去重和排序
import random
num1 = []
num2 = []
N = int(input("Please enter an integer between 1 and 1000:"))
for i in range(N):
num1.append(random.randint(1,1000))
for i in num1:
if num1.count(i) == 1:
num2.append(i)
else:
continue
#num2.sort(reverse = True)
num2 = sorted(num2)
print(num2)
#4按规定长度拆分字符串,不足的时候补零,空字符串不做操作。
str1 = []
str0 = input("Enter a string:")
while str0:
if len(str0) <= 8:
str0 += '0'*(8-len(str0))
str1.append(str0)
break
else:
str1.append(str0[:8])
str0 = str0[8:]
print(str1)
#5接收一个十六进制的数值字符串,输出发字符串的十进制字符串(或相反)。
while True:
try:
str = input("Enter a hex string:")
print(int(str,16))
except:
break
while True:
try:
str = int(input("Enter a integer string:"))
print(hex(str))
except:
break
#6输入一个正整数,按从小到大的顺序输出它所有的质数因子。
num = int(input("Enter an integer:"))
num1 = []
for i in range(2,num//2 + 1):
while num % i == 0:
num1.append(i)
num = num / i
for i in num1:
print(i,end = " ")
#7对输入的正浮点数实现四舍五入的算法
flo = float(input("Enter a float which is bigger than 0:"))
num = int(flo)
if (flo - num)*10 >= 5:
flo1 = num + 1
else:
flo1 = num
print(flo1)
#9输入一个int型的整数,按照从右向左的顺序返回一个没有重复数字的新整数
num = int(input("Enter an integer:"))
num1 = []
num2 = []
num3 = 0