练习题:
1.统计输入的字符多少个
s=input("请输入一个字符串:")
result=0
for i in s:
result+=1
print("输入内容是%s,一共有%s个字符" %(s,result))
2.统计输入的字符多少字母和数字
#方法一:
s=input("请输入一个字符串:")
result_num=0
result_str=0
for i in s:
if (i>="a" and i<="z") or (i>="A" and i<="Z"):
result_str+=1
elif i>="0" and i<="9":
result_num+=1
print("输入内容是%s,一共有数字%s个" %(s,result_num))
print("输入内容是%s,一共有字母%s个" %(s,result_str))
#方法二:引入string包
import string
s=input("请输入一个字符串:")
result_num=0
result_str=0
for i in s:
if i in string.ascii_letters:
result_str+=1
elif i in string.digits:
result_num+=1
print("输入内容是%s,一共有数字%s个" %(s,result_num))
print("输入内容是%s,一共有字母%s个" %(s,result_str))
3.将字符串重点数字去掉,只保留字母
import string
s=input("输入一个字符串:")
result=[]
for i in list(s):
if i in string.digits:
pass
elif i in string.ascii_letters:
result.append(i)
print ("改字符串删除数字后结果为"+''.join(result))
4.输入3个学生成绩,求和、平均数和最好成绩
scores=[]
for i in range(3):
s_score=input("请输入第%s个学生成绩:" %(i+1))
scores.append(int(s_score))
print(scores)
score_sum=0
for i in scores:
score_sum+=i
average_score=round(score_sum/3,3) #用round方法保留小数
max_score=max(scores)
print("成绩总和:%s,平均分数:%s,最大成绩:%s" %(score_sum,average_score,max_score))
5.输入一个学生成绩,判断优良中和不及格
score= input("请输入学生成绩:")
if int(score)>=90:
print("优")
elif int(score)>=80:
print("良")
elif int(score)>=70:
print("中")
elif int(score)>=60:
print("及格")
else:
print("不及格")
6.生成3个随机字母的字符串,生成一个随机小数的字符串(两个整数位和两个小数位)
import random
import string
#方法一:
a=[]
flag=list(string.ascii_letters)
for i in range(3):
a.append(random.choice(flag))
print("".join(a))
#方法二:
b=""
for i in range(3):
b+=chr(random.randint(97,122))
print ("随机生成三个字母:",b)
#生成数字
num=round(random.randint(10,99)+random.random(),2)
print("随机生成数字:",str(num))
7.随机从1-5,和8-11取一个数
#随机从1-5,和8-11取一个数
import random
a=[]
for i in range(1,6):
a.append(i)
for i in range(8,12):
a.append(i)
print (a)
num=random.choice(a)
print (int(num))
c=random.choice([i for i in range(1,6)]+[i for i in range(8,12)])
print (int(c))
d=[i for i in range(11,15)]
print (d)
8.统计一个数字中包含技术数字的个数
num=12849282
num=str(num)
r=[]
for i in num:
if int(i)%2==1:
r.append(i)
print ("一共有奇数个数为:%s" %len(r))
9.将数字的每一位+2,转换成一个新的数字(整数和小数)
a='12324.63'
a=str(a)
result=""
#不能实现进位
for i in a:
if i !=".":
result += str(int(i) + 2)[:1]
else:
result +="."
print(float(result))
10.将每个小写字母转换为大写字母,大写字母转换为小写字母
import string
s=input("请输入大小写字母:")
r=[]
for i in s:
if i in string.ascii_lowercase:
r+=str.upper(i)
else:
r+=str.lower(i)
print("".join(r))
import string
s=input("请输入大小写字母:")
r=[]
for i in s:
if "z">=i>="a" :
r+=chr(ord(i)-32)
else:
r += chr(ord(i) + 32)
print("".join(r))
11.将一个bytes类型的gbk字符串,转为utf-8编码的bytes字符串
s="你好" #unicode
s=s.encode("gbk")
s=s.decode("gbk").encode("utf-8")