1.字符串最后一个单词长度:
计算输入字符串中最后一个单词的长度。
while True:
try:
s = input().strip().split(' ')
print(len(s[-1]))
except:
break
2.计算字符个数:
统计一个字符串中某个字符的个数(不区分大小写)
c语言实现时要注意保存输入字符串的数组得设置的足够大!
s = input().strip().lower()
ch = input().strip().lower()
print(s.count(ch))
3.明明的随机数
对一组数据进行排序去重
sort方法和sorted函数的区别:
n = int(input().strip())
l = []
for i in range(n):
a = int(input().strip())
if a not in l:
l.append(a)
l.sort()
for number in l:
print(number)
4.字符串分隔:
字符串切片操作,注意循环变量i的取值
s = input().strip()
n = len(s) // 8
if n == 0:
print(s + '0' * (8-len(s)))
break
for i in range(n):
print(s[i*8:(i+1)*8])
if len(s) % 8 !=0:
print(s[(i+1)*8:]+'0' * (8*(n+1)-len(s)))
5.进制转换
将十六进制字符串转换成十进制
C语言中switch、case语句中,case语句的取值为整型或任何能转换成整型的数据类型(如字符型!)。
ASCII码值:‘0’:48, ‘A’:65, ‘a’:97。
s = input().strip()
#print(int(s,16)) #直接使用int()函数,改变base的值进行相应进制向十进制的转换
dic = {'A':10,'B':11,'C':12,'D':13,'E':14,'F':15}
summ = 0
for al in s[2:]:
if al in '0123456789':
summ = summ * 16 + ord(al)-ord('0')
else:
summ = summ * 16 + dic[al]
print(summ)
6.质数因子
任何一个数都可以分解成若干质数的乘积!一个质数的质因数只有它本身(1不是!)
注意输出格式!要求输出以空格隔开,最后一个数后面也要有空格,所以在print时可以加上end = ’ ’ ;或者可以把输出转化成字符串形式,便于输出空格。
while True:
try:
flag = False
n = int(input().strip())
tem = n // 2 + 1
for i in range(2,tem):
while n % i == 0:
flag = True
print(i,end = ' ')
n = n // i
if not flag:
print(n,end = ' ')
except:
break
7.取近似值
对一个数进行四舍五入;
C语言方法 直接(int)(s+0.5) 进行判断即可。如果要考虑负浮点数的情况,就用s-0.5再取整即可。
while True:
try:
s = input().split('.')
if s[1][0] in '56789':
print(int(s[0])+ 1)
else:
print(int(s[0]))
except:
break
8.合并表记录:
字典操作dict.items() 将字典中的每队key-value值组成元组,并将所有的元组组成列表的形式返回。
dict.keys()、dict.values()分别以列表的形式返回字典中的键和值。
while True:
try:
n = int(input().strip())
dic = {}
for i in range(n):
a,b = input().split(' ')
if a not in dic:
dic[a] = int(b)
else:
dic[a] += int(b)
for k,v in sorted(dic.items(),key = lambda x:int(x[0])):
print(k,v)
except:
break
9.提取不重复的整数
c语言实现基本思路:先定义一个数组a[10]={0}
用来标记该数字是否出现在输入整数中,然后对输入整数进行取余模除操作。
while True:
try:
s = input().strip()
l = ''
for al in s[::-1]:
if al not in l:
l += al
print(l)
except:
break
10.字符个数统计
统计字符串中含有不同字符ASCII码范围在0~127的个数。
C实现思路:此题跟9类似,也可以使用数组标记的思想,开一个大小为128的数组,对输入字符进行判断,是否ASCII值在0~127,在的话检查数组中该字符是否进行了标记,没标记的话计数+1,否则继续下一个字符。
n = input()
cunt = 0
l = ""
for i in n:
if ord(i) in range(0,128) and i not in l:
cunt = cunt + 1
l = l + i
print(cunt)