python(day005——基础知识5)

练习题:

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")

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值