
正文
Python习题002
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
作业1:判断某一个字符串是否是小数
def is_float(string):
string1 = str(string)
if string1.count('.') > 1: #检测字符串小数点的个数
return False
elif string1.isdigit(): #检测字符串是否只由数字组成,如果字符串只包含数字则返回 True 否则返回 False
return False
else:
new_string = string1.split(".") #按小数点分割字符
first_num = new_string[0] #取分割完之后这个list的第一个元素
# 判断负号的个数和first_num第一个元素是不是"-",如果负号个数等于1并且firs_num第一个元素是"-",则合法
if first_num.count( '-') == 1 and first_num[0] == '-':
first_num = first_num.replace('-','')
if first_num.isdigit() and new_string[1].isdigit():
return True
else:
return False
if __name__ == '__main__':
while True:
print("输入Q退出程序")
string = input("判断某一个字符串是否是小数,请输入一个字符串:")
if string.upper() == 'Q':
print("你退出了程序")
break
print(is_float(string))
print('\n')
作业 1 答案 1
def is_float(s):
s=str(s)
if s.count('.')==1: #检测字符串小数点的个数
new_s=s.split('.') #按小数点分割字符
left_num=new_s[0] #取分割完之后这个list的左边的元素
right_num=new_s[1] # 取分割完之后这个list的右边的元素
if right_num.isdigit(): #如果右边的元素是整数
if left_num.isdigit(): #如果右边的元素是整数
return True
elif left_num.count('-')==1 and left_num.startswith('-'): #左边元素有一个负号,并且负号在字符串开始位置
tmp_num=left_num.split('-')[-1]
if tmp_num.isdigit():
return True
return False
if __name__ == '__main__':
while True:
print("输入Q退出程序")
string = input("判断某一个字符串是否是小数,请输入一个字符串:")
if string.upper() == 'Q': #转换成大写字母
print("你退出了程序")
break
print(is_float(string))
print('\n')
作业 1 答案 2 升级版
作业2:将列表中的字符串全部用下划线连接起来
list = ['不','忘','初','心','牢','记','使','命']
print(list)
a = list[0]
for i in list[1:]:
# a += "_" + i
a = a + '_' + i
print(a)
作业 2 答案
作业3:输出一个列表,列表中是1-100之间的偶数
list=[]
sum = 0
for i in range(1,101):
if i % 2 == 0:
list.append(i)
print("1-100之间的偶数为:",list)
作业 3 答案
作业4:将列表里面的值(0-100)按照从大到小的顺序打印出来
import random
def num_sort(n):
list = []
for i in range(n):
num = random.randint(0, 100) #生成[a,b]之间的整数;
# print(num)
list.append(num)
print("没排序列表:",list)
list.sort(reverse=True)
'''
sort() 函数用于对原列表进行排序,如果指定参数,则使用比较函数指定的比较函数。
list.sort(cmp=None, key=None, reverse=False)
cmp -- 可选参数, 如果指定了该参数会使用该参数的方法进行排序。
key -- 主要是用来进行比较的元素,只有一个参数,具体的函数的参数就是取自于可迭代对象中,指定可迭代对象中的一个元素来进行排序。
reverse -- 排序规则,reverse = True 降序, reverse = False 升序(默认)。
该方法没有返回值,但是会对列表的对象进行排序。
'''
return list
if __name__ == '__main__':
n = int(input("请输入列表值的个数n:"))
print("排序后列表:",num_sort(n))
作业 4 答案
作业5:生成两个列表,第一个列表100-0中的偶数(不包含0)。
list1 = []
list2 = []
count = 1
while count<=100:
if count%2 == 0:
list1.append(count)
count = count + 1
for i in list1:
if i % 3 ==0:
list2.append(i)
print(list1)
print(list2)
作业 5 答案
作业6:li = [1, 3, 4, "kaka", [3, 7, 8, "WaHaHa"], 5, "Sam"]
要求:以小写形式输出每个元素
li = [1,3,4,'kaka',[3,7,8,'WaHaHa'],5,'Sam']
for ele in li:
if type(ele) == list:
for ele_lst in ele:
if type(ele_lst) == str:
print(ele_lst.lower())
else:
print(ele_lst)
else:
if type(ele) == str:
print(ele.lower())
else:
print(ele)
作业 6 答案
作业7:把班级学生数学考试成绩录入到一个列表中: 并求平均值。
要求:录入的时候要带着学生姓名和成绩, 输入Q退出录入。例如:aa_66
list = []
sum = 0
count = 0
while True:
name = input("请输入你的姓名,输入Q退出录入:")
if name =='':
name = input("请重新输入姓名,输入Q退出录入:")
if name.upper() == 'Q':
break
grade = float(input("请输入你的成绩,输入Q退出录入:"))
if grade == '':
grade = float(input("请重新输入你的成绩,输入Q退出录入:"))
sum = sum + grade
count += 1
avg = sum / count
grade = str(grade)
if grade.upper() == 'Q':
break
list.append(name + "_" + grade)
print(list)
print("成绩的平均数为:",avg)
作业 7 答案







