赞
踩
第二章-Python语言基础-2.5函数(二)
- numbers = []
-
- # str用来存储输入的数字字符串,lst1是将输入的字符串用空格分割,存储为列表
- str = input()
- lst1 = str.split(' ')
-
- # 将输入的数字字符串转换为整型并赋值给numbers列表
- for i in range(len(lst1)):
- numbers.append(int(lst1.pop()))
-
- # 请在此添加函数plus的代码,函数参数为一个列表,对列表中的数值元素进行累加求和
- # ********** Begin *********#
- def plus(n):
- return sum(n)
-
- # 调用plus函数,并将返回结果存储到变量d中
- d = plus(numbers)
- print(d)
- #coding=utf-8
-
- #输入两个正整数a,b
- a = int(input())
- b = int(input())
-
- # 请在此添加函数gcd代码,求两个正整数的最大公约数
- #********** Begin *********#
- def gcd(a,b):
- if a<b:
- a,b=b,a
- y=a*b
- y=a%b
- while y!=0:
- a=b
- b=y
- y=a%b
- return b
-
-
-
-
- #********** End **********#
-
- #调用函数,并输出最大公约数
- print(gcd(a,b))
或者你可以help,看下math.gcd(),lol
- #coding=utf-8
-
- #输入两个正整数a,b
- a = int(input())
- b = int(input())
-
- # 请在此添加一个private函数_gcd()求两个正整数的最大公约数
- #********** Begin *********#
- def _gcd(a,b):
- if a>b:
- a,b=b,a
-
- y=a%b
- while y!=0:
- a=b
- b=y
- y=a%b
- return b
-
-
-
-
-
-
- #********** End **********#
-
- #请在此添加一个public函数lcm(),在lcm()函数中调用_gcd()函数,求两个正整数的最小公倍数
- #********** Begin *********#
- def lcm(a,b):
- return a*b//_gcd(a,b)
-
-
-
- #********** End **********#
-
-
- #调用函数,并输出a,b的最小公倍数
- print(lcm(a,b))
老演员了
- import numpy as np
- import matplotlib
- matplotlib.use('Agg')
- import matplotlib.pyplot as plt #导入matplotlib.pyplot
- import matplotlib.image as imgplt
-
- # 第一题:求三角形阴影部分面积
- # 请编写函数triArea(a ,b , c),返回三角形的面积
- def triArea(a ,b , c):
- #请在下面编写代码
- ######## begin ###########
- p=(a+b+c)/2
- Area=(p*(p-a)*(p-b)*(p-c))**0.5
-
-
- ######## end #############
- #请不要修改下面的代码
- return Area
-
- S1 = triArea(9.8, 9.3, 6.4)
- S2 = triArea(2.9, 4.1, 4.7)
- S3 = triArea(2.0, 1.4, 2.3)
- print('%.6f' %(S1-S2+S3))
- print('\n***********************\n')
-
-
- # 第二题:哥德巴赫猜想
- # 请编写函数isPrime(x)。判断x是否为素数,如果是素数则返回True否则返回False
- def isPrime(x):
- #请在下面编写代码
- ######## begin ###########
- n=1
- for i in range(2,int(x**0.5)+1):
- if x%i==0:
- n=0
- break
- if n==0:
- return False
- else:
- return True
-
- ####### end ############
-
- def Goldbach(N): # 将N分解成两素数之和
- if N < 6 or N % 2 == 1: # 若N小于6或N为奇数
- print('N应该是大于等于6的偶数')
- else:
- # 循环判断,得到符合要求的小于N的两个素数,并打印
- for x in range(2, N //2 + 1): # 想想为什么是从2到N/2
- # 调用isPrime函数得到符合要求的小于N的两个素数
- ######## begin ###########
- if isPrime(x)==True and isPrime(N-x)==True :
- ######## end ###########
- print(N, '=', x, '+', N - x)
- break
- for num in [88, 68, 50, 1000]:
- Goldbach(num)
- print('\n***********************\n')
-
-
- # 第三题 :信用卡的验证程序
- def validCreditCard(num):
- #请在下面编写代码
- # ********** Begin ********** #
- s=0
- cnt=0
- num1=list(str(num))
- num1=num1[::-1]
- for i in num1:
- cnt+=1
- if cnt%2!=0:
- s=s+eval(i)
- else:
- num2=eval(i)*2
- num_2=list(str(num2))
- for j in num_2:
- s=s+eval(j)
-
-
-
- valid=s%10==0
-
- # ********** End ********** #
- #请不要修改下面的代码
- return valid
- for num in [1234567, 43589795, 87539319, 123456789]:
- valid = validCreditCard(num)
- print(valid)
- print('\n***********************\n')
-
- #第四题:打印日历
-
- def day(y, m, d):#计算y年m月d日是星期几
- # 请在下面编写代码
- # ********** Begin ********** #
-
- y0 = y - (14 - m)//12
- x = y0 + y0//4 - y0//100 + y0 //400
- m0 = m + 12*((14 - m)//12) - 2
- d0 = (d + x + 31*m0//12) % 7
- # ********** End ********** #
- # 请不要修改下面的代码
- return d0
-
- def isLeapYear(year): #判断year年是否闰年
- # 请在下面编写代码
- # ********** Begin ********** #
- if year%4==0 and year%100!=0 or y%400==0:
- isLeapYear=True
- else:
- isLeapYear=False
-
- # ********** End ********** #
- # 请不要修改下面的代码
- return isLeapYear
-
- def calendar(y, m): #打印y年m月日历
- print(' {}年{}月'.format(y,m))
- print('Su\tM\tTu\tW\tTh\tF\tSa')
- # 请在下面编写代码调用函数计算y年m月1日是星期几保存在变量date中
- # ********** Begin ********** #
- date=day(y,m,1)
-
- # ********** End ********** #
-
- days = 0
- # 请在下面编写代码计算y年m月的天数
- # ********** Begin ********** #
- if m==2:
- if isLeapYear(y)==True:
- days=29
- else:
- days=28
- elif m in [1,3,5,8,10,12]:
- days=31
- else:
- days=30
- # ********** End ********** #
- count = date # y年m月1日是星期几
- for i in range(date):
- print('\t', end='')
- for d in range(1, days + 1):
- print(str(d) + '\t', end="")
- count = (count + 1) % 7
- if count == 0:
- print()
- print()
-
- # 请不要修改下面的代码
- for (y,m) in [(2017,8), (2017,10),(2015,8), (2017,2), (2016,2)]:
- calendar(y, m)
- print('---------------------------')
-
- print('\n***********************\n')
实验十 函数
- def isprime(a):
- #代码开始
- flag=1
- for i in range(2,int(a**0.5)+1):
- if a%i==0:
- flag=0
- break
- if flag==1:
- return True
- else:
- return False
- n=eval(input("请输入一个数"))
- if isprime(n):
- print(n,"是一个质数")
- else:
- print(n,"不是一个质数")
- from isprime import *
- #代码开始
- def nx(i):
- y=0
- while i>0:
- y=y*10+i%10
- i=i//10
- return y
- n=0
- for i in range(10,99):
- if isprime(i):
- if isprime(nx(i)):
- n=n+1
- print(i,end=' ')
- if n%3==0:
- print('')
-
- #代码结束
- from isprime import *
- #代码开始
- def cjr(n):
- for i in range(2,int(n/2)+1):
- if isprime(i) and isprime(n-i):
- print('{:>2}={:>2}+{:>2}'.format(n,i,n-i)+'\t',end='')
- break
- n=0
- for i in range(4,100,2):
- n=n+1
- cjr(i)
- if n%5==0:
- print()
- #代码结束
- def triangle_type(a, b, c):
- # 判断是否能构成三角形
- li = [a,b,c]
- a=li[0]
- c=li[2]
- b=li[1]
- if a + b <= c :
- print("不能构成三角形")
-
- # 判断是否为等边三角形
- elif a == c:
- print("等边三角形")
-
- # 判断是否为等腰三角形
- elif a == b or b == c :
- print("等腰三角形")
-
- # 判断是否为直角三角形
- elif a**2 + b**2 == c**2:
- print("直角三角形")
-
- else:
- print("一般三角形")
-
-
- a = eval(input())
- b = eval(input())
- c = eval(input())
- m = triangle_type(a, b, c)
- cyzd={}
- def cyjl():
- f1=open("sy10//成语.txt","r",encoding="utf8")
- #代码开始
- for line in f1:
-
- line=line.strip()
- n=line.find("拼")
- cyzd[line[:4]]=line[n:]
- return cyzd
- #代码结束
- f1.close()
-
- def jqcx(i):
- #代码开始
- if i in cyzd.keys():
- print(cyzd[i])
- else:
- print('没有此成语')
- #代码结束
-
-
-
-
- cyzd={}
- cyjl()
- c=input("1精确查询0退出")
- while c!="0":
- #代码开始
- if c=='1':
- x=input('请输入成语')
- jqcx(x)
- c=input("1精确查询0退出")
- #代码结束
学习用find吧,不是所有成语都是四个字的
- def cyjl():
- f1=open("sy10//成语.txt","r",encoding="utf8")
- for line in f1:
- cy=line[:line.find("拼音")].strip()
- cyjx=line[line.find("拼音"):].strip()
- cyzd[cy]=cyjx
- f1.close()
-
- def mhcx(x):
- #代码开始
- for i in cyzd:
- if x in i:
- print(i)
- #代码结束
-
-
- def jqcx(x):
-
- if x not in cyzd.keys():
- print("成语不存在")
- else:
- print(cyzd[x])
-
- cyzd={}
- cyjl()
- c=input("1精确查询2模糊查询0退出")
- while c!="0":
- #代码开始
- if c=="1":
- x=input('请输入成语')
- jqcx(x)
- else:
- x=input('请输入词语')
- mhcx(x)
- c=input('1精确查询2模糊查询0退出')
-
- #代码结束
- def cyjl():
- f1=open("sy10//成语.txt","r",encoding="utf8")
- for line in f1:
- cy=line[:line.find("拼音")].strip()
- cyjx=line[line.find("拼音"):].strip()
- cyzd[cy]=cyjx
- f1.close()
-
- def mhcx():
- x=input("请输入成语")
- for y in cyzd.keys():
- if x in y:
- print(y)
-
-
- def jqcx():
- x=input("请输入成语")
- if x not in cyzd.keys():
- print("成语不存在")
- else:
- print(cyzd[x])
-
- def yx(x):
- n=0
- if x in cyzd.keys():
- for i in cyzd.keys():
- if x[-1]==i[0]:
- n=1
- print(i)
- break
- if n==0:
- print("你赢了")
- else:
- x=input("请输入成语")
- if x[0]!=i[-1]:
- print("没有接龙,你输了")
- else:
- yx(x)
- else:
- print("非法成语,你输了")
-
-
-
- cyzd={}
- cyjl()
- c=input("1精确查询2模糊查询3成语接龙0退出")
- while c!="0":
- if c=="1":
- jqcx()
- elif c=="2":
- mhcx()
- elif c=="3":
- x=input("请输入成语")
- yx(x)
- c=input("1精确查询2模糊查询3成语接龙0退出")
实验5-1 函数基础
- # -*- coding: utf-8 -*-
-
- # 第一题 请在此添加函数定义代码
- ########## Begin ##########
- def add(a,b):
- return a+b
-
- ########### end ###########
- x = eval(input())
- y = eval(input())
- print('{}+{}={}'.format(x,y,add(x,y)))
-
-
- # 第二题 请在此添加函数定义代码
- ########## Begin ##########
- def summ(x):
- return sum(range(1,n+1))
-
-
- ########### end ###########
- n = eval(input())
- print('1+...+{}={}'.format(n,summ(n)))
-
-
- # 第三题 请在此添加函数定义代码
- ########## Begin ##########
- def fac(x):
- if x==1:
- return 1
- else:
- return x*fac(x-1)
-
-
- ########### end ###########
- n = eval(input())
- print('{}!={}'.format(n,fac(n)))
- # coding=utf-8
- m = eval(input()) #输入判定范围
-
- # 请在此添加代码,定义判断素数函数
- ###### Begin ######
- def isprimary(n):
- flag=1
- for i in range(2,int(n**0.5)+1):
- if n%i==0:
- flag=0
- break
- if flag==1:
- return True
- else:
- return False
-
-
-
- ###### End ######
-
- # 在主程序中调用该函数
- ###### Begin ######
- for i in range(2,m+1):
- if isprimary(i)==True:
- print(i)
-
-
- ###### End ######
- # -*- coding: utf-8 -*-
- from math import *
-
- #####定义函数,请在下面补充代码 ######
- def move(x,y,step,angle=0):
- nx=x+step*cos(radians(angle))
- ny=y+step*sin(radians(angle))
- return nx,ny
-
-
-
- ###### 函数代码补充结束 ######
-
- constr = input()
-
- if constr.count(',') == 2:
- x,y,step = eval(constr)
- #### 请在下面补充代码,调用函数move,角度取默认值,计算新点坐标
- x,y=move(x,y,step)
-
- #### 补充代码结束 ####
- print('{:.1f} {:.1f}'.format(x,y))
- elif constr.count(',') == 3:
- x,y,step,angle= eval(constr)
- #### 请在下面补充代码,调用函数move,带全部参数,计算新点坐标
- x,y=move(x,y,step,angle)
-
- #### 补充代码结束 ####
- print('{:.1f} {:.1f}'.format(x,y))
- else:
- print('数据输入错误')
- #一个带*的形参名可接受任意个实参
- #请在此添加代码,返回参数列表中所有数的和
- def production(*arg):
- #********** Begin *********#
- s=1
- for i in arg:
- s=s*i
- return s
-
- #********** End *********#
- #调用
- #调用production()函数并输出结果
- print(production(2,3))
- print(production(2,4,5))
- print(production(10,2,3,4))
- import math
-
- def triangle(a, b, c):
- if a + b <= c or a + c <= b or b + c <= a:
- return 0, 0
- else:
- perimeter = a + b + c
- p = perimeter / 2
- area = math.sqrt(p * (p - a) * (p - b) * (p - c))
- return perimeter, area
-
- a = eval(input())
- b = eval(input())
- c = eval(input())
-
- p, area = triangle(a, b, c)
-
- if p == 0:
- print("不能构成三角形")
- else:
- print("周长{:.2f}".format(p))
- print("面积{:.3f}".format(area))
海伦公式算面积
- # -*- coding: utf-8 -*-
-
- # 输入两个正整数a,b
- a = int(input())
- b = int(input())
-
- # 请在此添加代码,求两个正整数的最大公约数
- ########## Begin ##########
-
- def gcd(a,b):
- if a<b:
- a,b=b,a
-
- y=a%b
- while y!=0:
- a=b
- b=y
- y=a%b
- return b
- def lcm(a,b):
- return a*b//gcd(a,b)
-
- ########## End ##########
-
- # 调用函数,并输出最大公约数
- g,lcm=gcd(a,b),lcm(a,b)
- print('最大公约数{} 最小公倍数{}'.format(g,lcm))
老演员了
- # coding=utf-8
-
- # strings用来存储输入的字符串,lst1是将输入的字符串用空格分割,存储为列表
- strings = input()
- lst1 = strings.split(' ') #全局变量
-
- # 请在此添加代码,定义函数maxlen()求输入的列表中的最长的元素
- ########## Begin ##########
- def maxlen():
- global lst1
- LEN=lst1[0]
- for i in lst1:
- if len(i)>len(LEN):
- LEN=i
- return LEN
-
-
- ########## End ##########
- st = maxlen() #调用函数,得到最长字符串
- print(st)
第二章-Python语言基础-2.5函数(一)
- #coding=utf-8
-
- #输入一个整数n
- n = int(input())
-
- # 请在此添加代码,实现编程要求
- #********** Begin *********#
- def prime(n):
- if n == 1:
- return False
- for i in range(2,int(n**0.5)+1):
- if n % i == 0:
- return False
- return True
-
-
-
- #********** End **********#
- print(prime(n))
- #coding=utf-8
-
- #输入数字字符串,并转换为数值列表
- a = input()
- num1 = eval(a)
- numbers = list(num1)
-
- # 请在此添加函数bubbleSort代码,实现编程要求
- #********** Begin *********#
- def bubbleSort(n):
- m = sorted(n)
- return m
-
-
-
- #********** End **********#
- print(bubbleSort(numbers))
- # -*- coding: utf-8 -*-
- """
- Created on Thu Sep 3 12:48:47 2020
- @author: hzh
- """
- from random import *
- from math import *
-
- r = []
- for i in [10, 200,300,400,500,600,700,800,900,1000]:
- seed(i)
- r.append(randint(1, i))
-
- def print_(x):
- if type(x) == float:
- print("%.4f" % x)
- else:
- print(x)
-
-
- #第一题
-
- def sumInt(n):
- #请在下面编写代码
- # ********** Begin ********** #
- if n < 0:
- return None
- else:
- summmary=sum(range(1,n+1))
- # ********** End ********** #
- #请不要修改下面的代码
- return summmary
-
-
- #第二题
- import math
- def factorial(n):
- #请在下面编写代码
- # ********** Begin ********** #
- if n < 0:
- return None
- else:
- fac=math.factorial(n)
-
- # ********** End ********** #
- #请不要修改下面的代码
- return fac
-
- #第三题
- import math
- def isPrime(n):
- # 请在下面编写代码
- # ********** Begin ********** #
- if n==1:
- return False
- else:
- flat=1
- x=int(math.sqrt(n))+1
- for i in range(2,x):
- if n%i==0:
- flat=0
- break
- if flat==0:
- return False
- else:
- return True
-
- # ********** End ********** #
- # 请不要修改下面的代码
- return (isprime)
-
- #第四题
-
- def f(x):
- # 请在下面编写代码
- # ********** Begin ********** #
- if -10<=x<-8:
- fx=x-2
- elif -8<=x<-6:
- fx=x+3
- elif -6<=x<=-2:
- fx=x**2
- elif -2<x<2:
- fx=abs(x)
- elif 2<=x<=4:
- fx=x**3
- elif 4<x<=6:
- fx=3*x-4
- else:
- fx=4*x+1
- # ********** End ********** #
-
- # 请不要修改下面的代码
- return fx
-
-
- #第五题
-
- def tax(salary):
- #请在下面编写代码
- # ********** Begin ********** #
- if 0<=salary<=47449:
- salaTax=salary*0.22
- elif 47450<=salary<=114649:
- salaTax=salary*0.25
- elif 114650<=salary<=174699:
- salaTax=salary*0.28
- elif 174700<=salary<=311949:
- salaTax=salary*0.33
- elif salary>=311949:
- salaTax=salary*0.35
- else:
- return None
- # ********** End ********** #
- # 请不要修改下面的代码
- return salaTax
-
-
- if __name__ == '__main__':
- for num in [-10, 0, 10, 100, 1000, 10000]:
- summary = sumInt(num)
- print(summary)
- print('\n***********************\n')
-
- for num in [-5, 0, 10, 15, 20, 25, 30]:
- fac = factorial(num)
- print(fac)
- print('\n***********************\n')
-
- for num in r:
- isprime = isPrime(num)
- print(isprime)
- print('\n***********************\n')
-
- for x in [-9, -8, -7, -6, -5, -2, -1, 0, 1, 2, 3, 4, 5, 6, 7, 8]:
- fx = f(x)
- print(fx)
-
- print('\n***********************\n')
- for salary in [-1000, 0, 40000, 47450, 98000, 114650, 14980, 17470, 25670, 311950, 360000]:
- st = tax(salary)
- print_(st)
总结:
难度整体比较小,主要目的是为了让你熟悉函数
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。