python面试题

1、字符串最后一个单词的长度

import sys

str = input()        //输入字符串str
arr = str.split(" ") //以空格分割字符串并将结果存入数组arr
n = len(arr) - 1     //获取数组最后一个元素的索引
print(len(arr[n]))   //打印最后一个元素arr[n]的长度即为最后一个单词的长度

2、计算某字符出现次数

描述:写出一个程序,接受一个由字母、数字和空格组成的字符串,和一个字符,然后输出输入字符串中该字符的出现次数。(不区分大小写字母)

str = input()

str = str.upper()

char = input()

char = char.upper()

num = 0

for word in str:

    if word == char:

        num = num + 1

print(num)

3、明明的随机数

描述

明明生成了N个1到500之间的随机整数。请你删去其中重复的数字,即相同的数字只保留一个,把其余相同的数去掉,然后再把这些数从小到大排序,按照排好的顺序输出。

数据范围: 1≤n≤1000   ,输入的数字大小满足 1≤val≤500 

输入描述:

第一行先输入随机整数的个数 N 。 接下来的 N 行每行输入一个整数,代表明明生成的随机数。 具体格式可以参考下面的"示例"。

输出描述:

输出多行,表示输入数据处理后的结果

示例:

输入:

3
2
2
1

复制

输出:

1
2

代码如下:

sum = int(input())

i  = 1

lst =[]

while i <= sum  :

   n =  int(input())

   lst.append(n)

   i = i+1

set1 = set(lst)   # 去重。set是不重复的,但是会变成无序

list1 = list(set1)  # list1=[32, 6, 103, 102, 45, 19, 86, 54, 25, 58, 91]

list1.sort()  # 将list1进行排序 ,默认是升序

# 打印出来

for j in list1:

    print(j)

4、字符串分隔

描述

•输入一个字符串,请按长度为8拆分每个输入字符串并进行输出;

•长度不是8整数倍的字符串请在后面补数字0,空字符串不处理。

输入描述:

连续输入字符串(每个字符串长度小于等于100)

输出描述:

依次输出所有分割后的长度为8的新字符串

示例1

输入:

abc

复制输出:

abc00000

代码实现如下:

str1 = input()
x = len(str1) % 8  # 整数后,剩下x个字符
y = len(str1) / 8  # 用于判断是不是整数个8
s = len(str1) // 8   # 整数个8
z = str(y).split('.')[1]

if len(str1) < 8:  # 长度小于8补0
    i = 1
    n = 8 - len(str1)
    while i <= n:
        str1 = str1 + '0'
        i = i + 1
    print(str1)
elif int(z) == 0:    # 长度大于8,是整数个8时,直接每8个截取打印
    for j in range(0, s):
        print(str1[j * 8:(j + 1) * 8])
else:     # 不是整数个8 ,整数个8截取打印,最后一个不够8的补0
    for j in range(0, s):
        print(str1[j * 8:(j + 1) * 8])
    print(str1[s*8:]+"0"*(8-x))

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值