习题57、 用户输入不同的数据,当输入的数据达到3个数字的时候,求和结束程序。(数字可以是整数)
提示:判断是否整数的方法,isdigit()
遍历所有的输入数据,判断是否在0-9的字符串范围内
方法1:
#coding=utf-8
result=0
count=0
while True:
s=input("please input the number:")
for v in s:
if v not in "0123456789":#如果不是数字跳出当前循环
break
else:
count+=1
result +=int(s)
if count==3:
break
print(result)
方法2:**利用isdigit()函数
知识点:isdigit() 函数的作用:检测字符串是否只由数字组成。
result=0
count=0
while True:
s=input("please input the number:")
if s.isdigit():
count+=1
result+=int(s)
if count==3:
break
print(result)
习题58:用嵌套列表的方式,遍历输出一个矩阵
方法1:
l=[[1,2,3],[4,5,6],[7,8,9]]
for i in l:
for j in i:
print(j,end="")
print()
方法2:
l=[[1,2,3],[4,5,6],[7,8,9]]
for i in range(len(l)):
for j in range(len(l[i])):
print(l[i][j],end=" ")
print()
习题59:嵌套列表的正、反对角线之和
正对角线之和:
l=[[1,2,3],[4,5,6],[7,8,9]]
result=0
for i in range(len(l)):
for j in range(len(l[i])):
if i==j:
result +=l[i][j]
print(result)
反对角线之和:
l=[[1,2,3],[4,5,6],[7,8,9]]
result=0
for i in range(len(l)):
for j in range(len(l[i])):
if (i+j)==2:
result +=l[i][j]
print(result)
习题60:求以下矩阵四边元素之和
方法1:
1、第1行和第5行所有元素求和
2、其他行 只要第1列和第5列求和
l=[
[1,2,3,4,5],
[1,2,3,4,5],
[1,2,3,4,5],
[1,2,3,4,5],
[1,2,3,4,5]
]
result=0
for i in range(len(l)):
for j in range(len(l[i])):
if i==0 or i==4:
result+=l[i][j]
else:
if j==0 or j==4:
result+=l[i][j]
print(result)
方法2:所有元素之和,减去中间矩阵之和
l=[
[1,2,3,4,5],
[1,2,3,4,5],
[1,2,3,4,5],
[1,2,3,4,5],
[1,2,3,4,5]
]
matrix_element_sum=0
sub_matrix_element_sum=0
for i in range(len(l)):
for j in range(len(l[i])):
matrix_element_sum+=l[i][j]
result_mid=0
for i in range(len(l)):
for j in range(len(l[i])):
if i==0 or i==4:
continue
else:
if j !=0 and j !=4:
sub_matrix_element_sum+=l[i][j]
print(matrix_element_sum-sub_matrix_element_sum)
习题61:统计单词中包含字母a的单词个数
s="I am a boy!"
count=0
list1=s.split()
for value in list1:
if "a" in value:
count+=1
print(count)
习题62、使用尽可能多的方法实现list去重
**方法1:**利用两个列表,遍历一个列表元素,如果不在另外一个列表,添加进另外一个列表
list1=[1,2,3,4,5,1,2,3,4,1,2]
result=[]
for i in list1:
if i not in result:
result.append(i)
print(result)
方法2:利用set
list1=[1,2,3,4,5,1,2,3,4,1,2]
result=list(set(list1))
print(result)
**方法3:**利用字典
list1=[1,2,3,4,5,1,2,3,4,1,2]
result={}
for value in list1:
result[value]="a"
print(list(result))
**方法4:**遍历每一个元素,如果当前元素列表包含个数大于1,删除掉
orinal_list = [1,1,2,3,3,4,4,5,5,6]
for i in orinal_list:
for j in range(orinal_list.count(i)-1):
orinal_list.remove(i)
print (orinal_list)
习题63、成绩等级判断 利用条件运算符的嵌套来完成此题:学习成绩>=90分的同学用A表示, 60-89分之间的用B表示,60分以下的用C表示
while 1:
try:
score=float(input("请输入学生的成绩:"))
except:
print("成绩输入有误!请重新输入!")
else:
break
if score >=90:
print("A")
elif score>=60 and score<=89:
print("B")
else:
print("C")
习题64、键盘读入一字符串,逆序输出
方法1:
string=input("请输入字符串:")
print(string[::-1])
方法2:
知识点:end=””抑制换行
string=input("请输入字符串:")
for i in range(len(string)-1,-1,-1):
print(string[i],end="")
习题65、求100个随机数之和,随机数要求为0—9的整数
import random
result=0
for i in range(100):
result+=random.randint(0,9)
print(result)