python05_Practice
1统计输入的字符有多少个?
知识点:1.输入 2.遍历 3.有储存结果的变量 4.模板字符串
s=input("请输入一个字符串:“)
result=0
for i in s:
result+=1
print("输入的内容%s,一共有%s个字符"%(s,result))
2.统计输入的字符多少个字母和数字?
思考点:1.输入 2.遍历 3.有存储结果的变量
4.模板字符串 5.if 判断是数字还是字母?不是数字也不是字母?
方法一:
s=input("请输入一个字符串: “)
letter_count=0
num_count=0
for i in s:
#判断i是否是字母
if ( i>="a" and i <="z") or ( i>="a" and i <="z")
letter_count+=1
#判断是否是数字
elif i>="0" and i<="9":
num_count+=1
print("输入的内容是%s,一共有%s个字母,一共有%s个数字"%(s,letter_count,num_count))
方法二:
import string
s=input("请输入一个字符串: ")
letter_count=0
num_count=0
for i in s :
#判断i是否是个字母
if i in string.ascii_letters:
letter_count+=1
#判断i是否是个数字
elif i in string.digits:
num_count+=1
print("输入的内容是%s,一共有%s个字母,一共有%s个数字"%(s,letter_count,num_count))
3.将字符串中的数字去掉,只保留字母
知识点:1 字符串可以改变吗?不能
2.想修改内容?需要把字符串改为list
3.怎么修改列表的内容?
s="abc123%*&"
s=list(s)
priint(type(s))
#遍历列表,判断是否是字母,是的话放到一个新列表,不是就忽略
for i in s:
if i in string.digits:
continue
else:
result.append(i)
print(result)
print("".join(result))
>>> s="a"
>>> s
'a'
>>> id(s)
1913517895160
>>> s+="b"
>>> s
'ab'
>>> id(s)
1913518918600
>>> l=[]
>>> l.append(1)
>>> l
[1]
>>> l=[]
>>> id(l)
1913518931720
>>> l.append(l)
>>> id(l)
1913518931720
>>> l.append(2)
>>> id(l)
1913518931720
>>>
4.输入3个学生成绩,求和,平均数和最好成绩
1.存多个数据使用List/tuple/dict,list
2.输入input
3.遍历list
4.求和,求平均值,求最大值
5,格式化输出
scores=[ ]
for i in range(3):
student_score=input("请输入第%s个学生成绩"%i)
scores.append(int(student_score))
score_sum=0
for i in scores:
score_sum+=i
average_score=score_sum/3
max_score=max(scores)
print("成绩总和:%s,平均成绩:%s,最佳成绩: %s"%(score_sum,average_score,max_score))
5.输入一个学生成绩,判断是优良中几个和不及格
知识点:1.输入 2 类型转换 3 if elif else
score=input(“请输入一个学生成绩: ”)
score=int(score)
if score>=90:
print("优")
elif score>=80:
print("良")
elif score>=70:
print("中")
elif score>=60:
print("及格")
else:
print("不及格")
6.生成3个随机字母的字符串生成一个随机小数字符串,2 个整数位和2个小数位
知识点:1,生成一个随机数 2,循环 3 拼接字符串 4 随机生成数字 5.根据ascii码生成字母
import random
rangdom_letters=" "
for i in range(2):
rangdom_letters+=chr(rangdom.rangdint(97,122))
print("随机的2个字母四: “,rangdom_letters)
rangdom_float=str(rangdom.randint(10,99))+"."+\
str(random.randint(10,99))
方法2:
random_float=round(random.randint(10,99)+random.random(),2)
random_float=str(random_float)
7.统计一个数字中包含奇书数字的个数
知识点:1.什么叫奇书 2怎么遍历3 数字转字符串 4 if 5多个数据,最后存储到结果中
num=123232311
num=str(num)
result=[ ]
for i in num:
if int(i)%2==1:
result.append(i)
print("一共有多少个奇书:%s"%len(result))
8.将数字的每一位+2,转换成一个新数字(整数和小数)
知识点 :数字转换位字符串,遍历,转换为数字,计算,拼接到一个变量,转换数字
num=123.65444
num=str(num)
result=" "
for i in num:
if i!=".":
result+=str(int(i)+2[:1]
else:
result+="."
print(float(result))
9.将每个小写字母转换为大写字母,大写字母转换为小写字母
s="a"
if s>="a" and s<="z":
print(chr(ord(s)-32))
else:
print(chr(ord(s)+32))
10.将一个bytes类型的gbk字符串,转为utf-8编码的bytes字符串
知识点:
1.默认python字符串类型是Unicode
2.unicode字符串使用encode后,就变为bytes类型
3.bytes类型decode后,就变为unicode类型
4.用什么字符集encode,那么使用decode时候要使用相同的字符集
s="中国" #unicode
s=s.encode("gbk")
s=s.decode("gbk").encode("utf-8")