1.输入一个人名,按照要求给出回应。
name = input()
print(name + "同学,人生苦短,我学python")
print(name[0:1] + "大侠,学好python,走遍天下也不怕")
print(name[1:len(name)] + "小盆友,学好python,你最帅")
2.按照1美元=6人民币的汇率编写一个美元和人民币的双向兑换程序
money = input()
number = float(money[1:len(money)])
if money.startswith("R"):
print("$%.2f" % (number / 6.0))
elif money.startswith("$"):
print("R%.2f" % (number * 6.0))
3.输入一个数值表示圆的半径,求相应圆的面积。圆周率要求使用math库中的pi常量。
import math
R = float(input())
print("%.2f" % (math.pi * pow(R, 2)))
4.本题要求实现一个计算m~n(m<n)之间所有整数的和的简单函数。
def sum(m,n):
s=0
for i in range(m,n+1):
s=s+i
return s
5,本题要求实现求Fabonacci数列项的函数。Fabonacci数列的定义如下:
f(n)=f(n?2)+f(n?1) (n≥3),其中f(1)=1,f(2)=1。
def f(n):
if n == 1 or n == 2:
return 1
s=f(n - 1) + f(n - 2)
return s
6.企业根据利润提成发放奖金问题。利润低于或等于10万元时,奖金可提10%;利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分, 可提成7.5%; 20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于40万元的部分,可提成3%; 60万到100万之间时,高于60万元的部分,可提成1.5%; 高于100万元时,超过100万元的部分按1%提成。从键盘输入当月利润,求应发放奖金总数?
def money(num):
if num<100000 and num>=0:
return num*0.1
elif num<200000 and num>= 100000:
return 100000*0.1+(num-100000)*0.075
elif num<400000 and num >=200000:
return 100000*0.1+100000*0.075+(num-200000)*0.05
elif num<600000 and num>=400000:
return 100000*0.1+100000*0.075+200000*0.05+(num-400000)*0.03
elif num<1000000 and num>=600000:
return 100000*0.1+100000*0.075+200000*0.08+(num-600000)*0.015
elif num>=1000000:
return 39500+(num-1000000)*0.01
else:
return 0
num=eval(input())
print(money(num))
输入年、月、日,要求输出该年份的元旦到该日期总共经过了多少天。
Leap=(31,29,31,30,31,30,31,31,30,31,30,31)
DisLeap=(31,28,31,30,31,30,31,31,30,31,30,31)
result=[]
def dayNum(num):
for i in range(num):
date = []
str1 = input()
date = str1.split(' ')
try:
year = int(date[0])
month = int(date[1])
day = int(date[2])
if year%400==0 or year%4==0 and year%100!=0:
if month<=12 and month>0 and day>0 and day<=Leap[month-1]:
res = 0
for j in range(month-1):
res+=Leap[j]
res+=day
result.append("Totaldays = "+str(res))
else:
result.append("ErrorInput")
else:
if month<=12 and month>0 and day>0 and day<=DisLeap[month-1]:
res = 0
for j in range(month-1):
res+=DisLeap[j]
res+=day
result.append("Totaldays = "+str(res))
else:
result.append("ErrorInput")
except:
result.append("ErrorInput")
for k in result:
print(k)
n = eval(input())
if n>=0:
dayNum(n)
7.温度刻画存在不同体系,摄氏度以1标准大气压下水的结冰点为0度,沸点为100度,将温度进行等分刻画。 华氏度以1标准大气压下水的结冰点为32度,沸点为212度,将温度进行等分刻画。
c = input()
cType = c[-1]
if cType == 'F' or cType == 'f':
print("%.2fC" % ((float(c[0 : -1]) - 32) / 1.8))
elif cType == 'C' or cType == 'c':
print("%.2fF" % (float(c[0 : -1]) * 1.8 + 32))
else:
print("Error")
8.编程序实现功能:输入一个整数,判断其是否能同时被3、5、7整除。能被整除则输出“Yes”,否则, 输出“No”。
def f(n):
n!=0
if (n%7==0|n%3==0|n%5==0):
print("Yes")
else:
print("No")
n=int(input())
f(n)
9,计算下列分段函数f(x)的值:
def format(x):
if(x==0):
print("f(0.0)=0.000")
else:
print("f({:.2f})={:.3f}".format(x,1/x))
x=float(input())
format(x)
10.本题目要求读入一个字符串,统计字符串中字母、数字、空格、其它字符的个数。
letter = 0
digits = 0
spaces = 0
other = 0
str0 = input()
for i in str0:
if i.isalpha():
letter+=1
elif i.isdigit():
digits+=1
elif i.isspace():
spaces+=1
else:
other+=1
print('letters=%d,digits=%d,spaces=%d,others=%d'%(letter,digits,spaces,other))
11.输入一个字符串,把最左边的10个不重复的字符(大小写算不同字符)挑选出来。 如不重复的字符不到10个,则按实际数目输出。
a=input()
s = ""
for i in a:
if i not in s:
if(len(s)<10):
s+=i
print(s)
12.输入一个整数列表,找出整数列表中最大元素的下标,如果最大元素的个数超过1,那么请打印输出所有的下标。
a = input("")
if a=="":
print()
else:
li = a.split(",")
if len(li)==1:
print(0)
else:
li2 = []
for i in li:
li2.append(int(i))
li2.sort()
maxInt = li2[len(li2)-1]
for i in range(0,len(li)):
if int(li[i]) == maxInt:
print(i)
13.输入一个列表,删除其中的重复值,再输出。s = input("")
li = eval(s)
li2=[ele for ele in reversed(li)]
li = []
for i in li2:
if i not in li:
li.insert(0,i)
print(li)
14.统计字符串列表中每个字母出现的次数。 编写程序,使用eval()函数读入一个仅包含字符串对象的列表,然后统计该列表中每个字母出现的次数。 列表中的字符串对象仅包含小写英文字母。
s = input('')
li = eval(s)
dict = {}
for i in li:
for j in i:
if j not in dict.keys():
dict[j] = 1
else:
dict[j] = dict[j] + 1
for i in sorted(dict):
print(i, dict[i], sep=',')
15.小明在帮老师处理数据,这些数据的第一行是n,代表有n行整数成绩需要统计。 接着连续输入n个成绩,如果中途输入错误(非整数)提示’Error! Reinput’, 并输出错误的数据。然后重新输入,直到输入n个正确的成绩才退出。如果整个 输入过程中没有错误数据,提示’All OK’。最后输出所有学生的平均值,保留两 位小 数。
n = int(input())
num = n
sum_grade = 0
flag = True
err_grade = ""
err_list = []
while n:
try:
err_grade = input()
grade = int(err_grade)
sum_grade += grade
n = n-1
except:
flag = False
err_list.append(err_grade)
if flag:
print("All OK")
else:
for grade in err_list:
print("Error for data %s! Reinput" % grade)
print("avg grade = %.2f" % (sum_grade/num))
16.输入一个非空字符串和一个索引值,输出字符串中,该索引值对应的字符。若发现异常,则输出“输入下标有误”
s = input("")
try:
i = int(input())
except:
print("输入下标有误")
else:
try:
print(s[i])
except:
print("输入下标有误")
17,所谓“往返跑方阵”,是指对任意给定的n,将1到n×n的整数依次填写到n×n的方阵中,从右上角第1个格子开始,向下填充;倒底后,往左移动一列,改变方向,向上填充; 到最上面一行后,再向左一列,改变方向,向下填充;.…… 以此类推,直到将n×n的方阵填满。本题要求构造这样的“往返跑方阵”。
def f(n):
list1 = []
for i in range(n):
li = []
list1.append(li)
a = 1
lie1 = n
while lie1>0:
if n%2!=0:
if lie1 % 2 != 0:
for j in range(n):
list1[j].insert(0, a)
a += 1
else:
for j in range(n):
list1[0 - j - 1].insert(0, a)
a += 1
else:
if lie1 % 2 == 0:
for j in range(n):
list1[j].insert(0, a)
a += 1
else:
for j in range(n):
list1[0 - j - 1].insert(0, a)
a += 1
lie1-=1
return list1
nn = int(input(""))
for i in f(nn):
for j in i:
print("%3d" % j, end="")
print()
供学习参考,如有优化代码请评论区分享
|