知识点1:
输入变为浮点数:score = input("请输入成绩:")
score = float(score)
1题目:利用条件运算符的嵌套来完成此题:学习成绩>=90分的同学用A表示,60-89分之间的用B表示,60分以下的用C表示。
"""
File: 4学习成绩等级.py
Author: chde_wang
Date: 2020-07-22-23-16
Description:判断学生成绩等级
"""
score = input("请输入成绩:")
grade = ""
try:score = float(score)if score > 100:print("您输入的成绩不合法!")elif score >= 90:grade = "A"print('该成绩等级为:', grade)# elif score >= 60 and score <= 89:elif 60 <= score <= 89:grade = "B"print('该成绩等级为:', grade)else:grade = "C"print('该成绩等级为:', grade)
except ValueError:print("您输入的不是数字!")
没有考虑分数小于0:,修改:
"""
File: 4学习成绩等级.py
Author: chde_wang
Date: 2020-07-22-23-16
Description:判断学生成绩等级
"""
score = input("请输入成绩:")
grade = ""
try:score = float(score)if score > 100 or score < 0:print("您输入的成绩不合法!")elif score >= 90:grade = "A"print('该成绩等级为:', grade)# elif score >= 60 and score <= 89:elif 60 <= score <= 89:grade = "B"print('该成绩等级为:', grade)else:grade = "C"print('该成绩等级为:', grade)
except ValueError:print("您输入的不是数字!")
2题目:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。
"""
File: 统计个数.py
Author: chde_wang
Date: 2020-07-22
Description:统计字母、数字、空格、其他个数
"""
s = input()
sum_character = 0
sum_space = 0
sum_num = 0
sum_other = 0
# 求ASCII码 ord()
# 转字符 chr()
for i in s:i = ord(i)if (65 <= i <= 97) or (97 <= i <= 122): # 大小写sum_character = sum_character+1elif 48 <= i <= 57:sum_num = sum_num+1elif i == 32:sum_space = sum_space+1else:sum_other = sum_other+1
print("sum_character:", sum_character)
print("sum_num", sum_num)
print("sum_space", sum_space)
print("sum_other", sum_other)
3题目:一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?
"""
File: 1乒乓球弹跳.py
Author: chde_wang
Date: 2020-07-20
Description:一球从100米高度自由落下,每次落地后反跳回原高度的一半,再落下,求它在第10次落地时,共经过多少米,第10次反弹多高?
"""
# 原思路
'''
height=100
sum_height_lst=[]
for i in range(10):sum_height_lst.append(height) 只弹跳了9次height=height/2
sum_height=0
for i in sum_height_lst:print(i)sum_height=sum_height+i
print(sum_height)
print(sum_height_lst[-1])
'''
# 仔细考虑之后,从第二次之后开始弹跳 总高度为弹跳的二倍
height = 100
sum_height_lst = []
for i in range(11):sum_height_lst.append(height)height = height/2
sum_height = 0
for i in range(len(sum_height_lst)):print(sum_height_lst[i])
for i in range(len(sum_height_lst)):print(sum_height_lst[i])if i == 0:sum_height = sum_height_lst[i]+sum_heightprint("第", i, "次,", "高度为:", sum_height)else:sum_height = sum_height_lst[i]*2 + sum_heightprint("第", i, "次,", "高度为:", sum_height)
print(sum_height)
print(sum_height_lst[-1])
修改:
# 仔细考虑之后,从第二次之后开始弹跳 总高度为弹跳的二倍
# 第一次的球经过的高度为100
# 从第二次后 球经过的高度为 弹跳距离的二倍
# 球第二次经过的高度为球的第一次弹跳
# 所以球第十次经过高度后为 球的第9次弹跳
# 所以还需要再弹跳一次
height = 100
sum_height_lst = []
for i in range(10):sum_height_lst.append(height)height = height/2
sum_height = 0
for i in range(len(sum_height_lst)):if i == 0:sum_height = sum_height_lst[i]+sum_heightprint("第", i+1, "次,", "弹跳高度为:", sum_height_lst[i], "总高度为:", sum_height)else:sum_height = sum_height_lst[i]*2 + sum_heightprint("第", i+1, "次,", "弹跳高度为:", sum_height_lst[i], "总高度为:", sum_height)
print(sum_height)
print(sum_height_lst[-1]/2)
网上代码:
# -*- coding: utf-8 -*-
far = []
high = 100
for i in range(1, 11):if i == 1:far.append(high)else:far.append(high * 2)high = high / 2print(f'经过的总距离:far = {sum(far)}')
print(f'第十次反弹多高:high = {high}')
# --------------------------------------------------------
# 经过的总距离:far = 299.609375
# 第十次反弹多高:high = 0.09765625
4题目:两个乒乓球队进行比赛,各出三人。甲队为a,b,c三人,乙队为x,y,z三人。已抽签决定比赛名单。有人向队员打听比赛的名单。a说他不和x比,c说他不和x,z比,请编程序找出三队赛手的名单。
"""File: 2比赛对抗.pyAuthor: chde_wangDate: 2020-07-21Description: a不和x比赛,c不和x、z比赛
"""
import copy
list_jia = ['a', 'b', 'c']
list_yi = ['x', 'y', 'z']
list_a = copy.copy(list_yi)
list_b = copy.copy(list_yi)
list_c = copy.copy(list_yi)
# list_a=list_b=list_c=list_yi # 此处为深拷贝(拷贝地址)
for i in list_jia:for j in list_yi:if i == 'a' and j == 'x':list_a.remove('x') # pop(index) 若没有index则默认为列表最后一个elif i == 'c':if j == 'x':list_c.remove('x')elif j == 'z':list_c.remove('z')
while len(list_yi) != 0:if len(list_a) == 1:print("a:", list_a[0])list_yi.remove(list_a[0])if list_a[0] in list_b:list_b.remove(list_a[0])if list_a[0] in list_c:list_c.remove(list_a[0])list_a.pop()elif len(list_b) == 1:print("b:", list_b[0])list_yi.remove(list_b[0])if list_b[0] in list_a:list_a.remove(list_b[0])if list_b[0] in list_c:list_c.remove(list_b[0])list_b.pop()elif len(list_c) == 1:print("c:", list_c[0])list_yi.remove(list_c[0])if list_c[0] in list_a:list_a.remove(list_c[0])if list_c[0] in list_b:list_b.remove(list_c[0])list_c.pop()
5题目:打印出如下图案(菱形):
*********
****************
'''打印菱形 前半部分和后半部分相同 倒序输出即可考虑空格数和星号数的关系
'''len_lx = 7 # 菱形宽度
for i in range(1, len_lx, 2):len_space = (len_lx-i) // 2 # /为除法 //为整除 %取模print(' '*len_space, end='')print('*'*i, end='')print(' '*len_space)
for i in range(len_lx,0,-2):len_space = (len_lx - i) // 2print(' ' * len_space, end='')print('*' * i, end='')print(' ' * len_space)