根据公式计算A地区教师任教年薪,统计键盘输入的字符串中数字个数,按字典序输出。
(笔记模板由python脚本于2023年11月10日 18:05:18创建,本篇笔记适合熟悉python列表、元、字符串等基本数据类型的coder翻阅)
Python 官网:https://www.python.org/
Free:大咖免费“圣经”教程《 python 完全自学教程》,不仅仅是基础那么简单……
地址:https://lqpybook.readthedocs.io/
自学并不是什么神秘的东西,一个人一辈子自学的时间总是比在学校学习的时间长,没有老师的时候总是比有老师的时候多。
—— 华罗庚
本文质量分:
CSDN质量分查询入口:http://www.csdn.net/qc
【题目来源于 CSDN 问答社区提问“基本数据类型的两道小题”】
1、根据公式计算A地区教师任教年薪,这是纯纯的数学题目,只要把解题方法“代码”一下就行。
2、统计键盘输入的字符串中数字个数,按字典序输出。此题目用循环遍历即可搞定,蹦出一个“新词儿”字典序,字典序即是升序,对列表排序一下就可以的了。Python列表方法list.sort和sorted函数都是默认升序。
python代码
def countSalary(year):
base = localSalary = 30000
for i in range(year):
rate = 2 if i < 11 else 2.5 if i < 21 else 3 if i < 31 else 4 # 三元操作语句确定工资增长率。
#localSalary *= 1 + (rate/100 if i > 0 else 0)
print(f"A地区教师任教第{i+1:0>2}年薪资:{base + base*rate/100*i:.2f}") # 字符串插值格式化输出当前年薪。
#print(f"A地区教师任教第{i+1:0>2}年薪资:{localSalary:.2f}") # 字符串插值格式化输出当前年薪。
if __name__ == '__main__':
print('\n1、教师任教年薪计算:')
countSalary(35)
不匹配
因而,我认为题目中的“之前”应该是上一年年薪而不是入职当年的基本年薪。
代码加个变量,输出语句稍微修改就可以
def countSalary(year):
base = localSalary = 30000
for i in range(year):
rate = 2 if i < 11 else 2.5 if i < 21 else 3 if i < 31 else 4 # 三元操作语句确定工资增长率。
localSalary *= 1 + (rate/100 if i > 0 else 0)
#print(f"A地区教师任教第{i+1:0>2}年薪资:{base + base*rate/100*i:.2f}") # 字符串插值格式化输出当前年薪。
print(f"A地区教师任教第{i+1:0>2}年薪资:{localSalary:.2f}") # 字符串插值格式化输出当前年薪。
if __name__ == '__main__':
print('\n1、教师任教年薪计算:')
countSalary(35)
统计键盘输入的字符中的数字,可以遍历计数;也可以用字符串方法str.count统计0~9的数字,加条if语句过滤掉字符串中没有的数字(str.count方法返回0值的项)。
我偷懒取巧,在此贴出的代码用了带条件表达式语句的列表解析式。
Python代码
def countNum(s):
counts = [(i, s.count(str(i))) for i in range(10) if s.count(str(i))] # 解析统计数字
return '\n'.join([f"{i[0]}: {i[-1]}" for i in counts]) + f'\nTotal {sum([i[-1] for i in counts])} bits' # 拼接“字符串插值格式化”统计元组列表字符串。
if __name__ == '__main__':
while input('\ncontinue?_').strip().lower() == 'yes':
s = input('\n2、输入数字统计:\n\nInput: ').strip()
print(f'\nOut: \n{countNum(s)}')
为了达成题目要求的格式,我调用countNum函数用了while循环,又是偷懒而没有另设变量,直接把input()语句放在了while判定是否循环的位置。
(源码较长,点此跳过源码)
#!/sur/bin/nve python
# coding: utf-8
# 第一小题 #
def countSalary(year):
base = localSalary = 30000
for i in range(year):
rate = 2 if i < 11 else 2.5 if i < 21 else 3 if i < 31 else 4 # 三元操作语句确定工资增长率。
localSalary *= 1 + (rate/100 if i > 0 else 0)
#print(f"A地区教师任教第{i+1:0>2}年薪资:{base + base*rate/100*i:.2f}") # 字符串插值格式化输出当前年薪。
print(f"A地区教师任教第{i+1:0>2}年薪资:{localSalary:.2f}") # 字符串插值格式化输出当前年薪。
if __name__ == '__main__':
print('\n1、教师任教年薪计算:')
countSalary(35)
# 第二小题 #
def countNum(s):
counts = [(i, s.count(str(i))) for i in range(10) if s.count(str(i))] # 解析统计数字
return '\n'.join([f"{i[0]}: {i[-1]}" for i in counts]) + f'\nTotal {sum([i[-1] for i in counts])} bits' # 拼接“字符串插值格式化”统计元组列表字符串。
if __name__ == '__main__':
while input('\ncontinue?_').strip().lower() == 'yes':
s = input('\n2、输入数字统计:\n\nInput: ').strip()
print(f'\nOut: \n{countNum(s)}')
我的HOT博:
本次共计收集 246 篇博文笔记信息,总阅读量 40.46w,平均阅读量 1644。已生成 16 篇阅读量不小于 4000 的博文笔记索引链接。数据采集于 2023-10-12 05:41:03 完成,用时 4 分 41.10 秒。
精品文章:
来源:老齐教室
◆ Python 入门指南【Python 3.6.3】
好文力荐:
CSDN实用技巧博文: