【描述】
一元二次方程ax2+bx+c=0,a、b、c的值由用户在三行中输入,根据用户输入的数值求解方程的实数解:
如果a值为0,根据b值判断方程是否有解并输出,如果a与b同时为0,则输出Data error!
如果方程无实数解,输出“该方程无实数解”;
如果方程有两个相同的实数解,输出一个解;
如果方程有两个不同的实数解,在一行内按从大到小顺序输出方程的两个解,用空格分隔。
【输入】
输入三行数据, 每行输入一个实数
示例 1 : 8 5 2
示例 2 : 0 5 6
示例 3 : 0 0 9
【输出】
方程的解
示例 1 :该方程无实数解
示例 2 :-1.2
示例 3 :Data error!
【代码】
import math def calc1(a,b,c): return (-b+math.sqrt(delta))/(2*a) def calc2(a,b,c): return (-b-math.sqrt(delta))/(2*a) a,b,c=eval(input()),eval(input()),eval(input()) delta = b * b - 4 * a * c if a == 0 and b!=0: print(-c / b) elif a == 0 and b == 0: print("Data error!") else: if delta < 0: print("该方程无实数解") elif delta == 0: print(calc1(a,b,c)) elif delta>0: print(calc1(a,b,c),calc2(a,b,c))【描述】
我国古代数学家张丘建在《算经》一书中提出的数学问题:鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱一。百钱买百鸡,如果要求鸡翁、鸡母、鸡雏都不为零,问鸡翁、鸡母、鸡雏各几何?
【输入】
无
【输出】
每行输出一组结果,按鸡翁数、鸡母数、鸡雏数的顺序输出,数字之间用空格分隔;
如果有多组解时,按公鸡数量由少到多输出;
【代码】
for rooster in range(1,20):#公鸡最多买19只 for hen in range(1,32):#母鸡最多买31只 for chick in range(3,277,3):#小鸡最少买3只,最多买276只 if rooster+hen+chick==100 and 5*rooster+3*hen+chick//3 ==100: print(rooster,hen,chick)【描述】
大约在1500年前,《孙子算经》中就记载了这个有趣的问题。书中是这样叙述的:
今有雉兔同笼,上有三十五头,下有九十四足,问雉兔各几何?
这四句话的意思是: 有若干只鸡兔同在一个笼子里,从上面数,有35个头,从下面数,有94只脚。问笼中各有多少只鸡和兔?
请编一个程序,用户在同一行内输入两个整数,代表头和脚的数量,编程计算笼中各有多少只鸡和兔,假设鸡和兔都正常,无残疾。如无解则输出Data Error!
a,b = input().split() #读入两个数到a b中 a,b = map(int,input().split(',')) #读入两个整数到a,b中,输入的数用逗号分隔 a,b = map(int,input().split(' ')) #读入两个整数到a,b中,输入的数用空格分隔【输入】
在一行里输入两个整数,用空格分隔
示例 1 :35 94
示例 2 :-4 16
【输出】
在一行里输出两个正整数,分别是鸡和兔的数量,用空格分隔
如无解则输出Data Error!
示例 1 :23 12
示例 2 :Data Error!
【代码】
flag = -1 head,feet = map(int,input().split(' ')) for chicken in range(head): for rabbit in range(head): if chicken + rabbit == head and 2*chicken + 4*rabbit == feet: print(chicken,rabbit) flag = 0 if flag < 0: print('Data Error!')【描述】
本题要求两个给定正整数的最大公约数和最小公倍数。
【输入】
两行输入,每行给出一个正整数(≤1000)。
示例 1 : 4 6
示例 2 : 12 36
示例 3 : 3 13
【输出】
在一行中顺序输出M和N的最大公约数和最小公倍数,两数字间以1空格分隔。
示例 1 :2 12
示例 2 :12 36
示例 3 :1 39
【代码】
import math a=eval(input()) b=eval(input()) r1=math.gcd(a,b) r2=a*b/r1 print(int(r1),int(r2))【描述】
输入三个数a,b,c, 判断能否以它们为三个边长构成三角形。若能,输出YES和三角形面积(结果保留2位小数),否则输出NO。
【输入】
输入包括三行,每行是一个数字
示例 1 : 3 4 5
【输出】
‘YES’ 和面积值(结果保留2位小数),或’NO’
示例 1 : YES 6.00
【代码】
import math a = eval(input()) b = eval(input()) c = eval(input()) p = (a+b+c)/2 s = math.sqrt(p*(p-a)*(p-b)*(p-c)) if a + b > c and a + c > b and b + c > a: print('YES') print('{:.2f}'.format(s)) else: print('NO')【描述】
互联网上的每台计算机都有一个独一无二的编号,称为IP地址,每个合法的IP地址由’.'分隔开的4个数字组成,每个数字的取值范围是0-255。
现在用户输入一个字符串(不含空白符,不含前导0,如001直接输入1),请你判断s是否为合法IP,若是,输出’Yes’,否则输出’No’。
如用户输入为202.114.88.10, 则输出Yes; 当用户输入202.114.88,则输出No。
【输入】
一个字符串
示例 1 :255.255.255.0
【输出】
输出’Yes’或’No’
示例 1 :Yes
【代码】
IP = input() IP1 = IP.split('.') flag = True if len(IP1) !=4: flag = False else: for i in range(4): try: IP2 = int(IP1[i]) if(IP1[i][0]==0): flag = False break else: if IP2 > 255 or IP2 < 0: flag = False break else: flag = True except: flag = False break if flag == True: print('Yes') else: print('No')【描述】
回文素数是指一个数既是素数又是回文数。例如,131,既是素数又是回文数。 用户输入一个正整数n(1 <= n <= 100), 请你在一行内输出从小到大排列的的前n个回文素数,数字之间用空格分隔。
【输入】
输入一个正整数
示例 1 :10
【输出】
符合要求的回文素数
示例 1 :2 3 5 7 11 101 131 151 181 191
【代码】
a = int(input()) b = [] n = 1 while len(b) < a: n = n+1 if str(n) == str(n)[::-1]: for i in range(1,n): if n % i == 0: x = i else: if x == 1: b.append(str(n)) print("{}".format(" ".join(b)),end=" ")【描述】
反素数(逆向拼写的素数)是指一个将其逆向拼写后也是一个素数的非回文数。例如:13和31都是素数,且13和31都不是回文数,所以,13和31是反素数。 输入一个正整数n(1 <= n <= 100), 请输出从小到大排列的的前n个反素数,数字间以空格进行分隔。
【输入】
输入一个正整数
示例 1 :10
【输出】
符合条件的反素数
示例 1 :13 17 31 37 71 73 79 97 107 113
【代码】
a = int(input()) b = [] n = 1 while len(b) < a: n = n + 1 if (n>10) and (str(n) != str(n)[::-1]): for i in range(1,n): if n % i == 0: x = i else: if x == 1: c = str(n)[::-1] for j in range(1,int(c)): if int(c) % j == 0: y = j else: if y == 1: b.append(str(n)) print("{}".format(" ".join(b)),end=" ")【描述】
输入年月日,判断这一天是这一年的第几天?
【输入】
输入包括三行:
第一行是一个不超过四位数的正整数
第二行是一个不超过12的正整数
第三行是一个不超过31的正整数
示例 1 : 2018 2 1
【输出】
某年某月某日是某年的第多少天
示例 1 :2018年2月1日是2018年第32天
【代码】
year = eval(input()) month = eval(input()) day = eval(input()) if (year % 4 == 0 and year % 100 == 0) or year % 400 == 0:#闰年 month_day = [0,31,60,91,121,152,182,213,244,247,305,335] today = month_day[month-1] + day print('{0}年{1}月{2}日是{0}年第{3}天'.format(year,month,day,today)) else:#平年 month_day = [0,31,59,90,120,151,181,212,243,273,304,334] today = month_day[month-1] + day print('{0}年{1}月{2}日是{0}年第{3}天'.format(year,month,day,today))【描述】
用户输入一串单词或数字,中间用空格分隔,提取每个单词或数字的第一个字符生成一个新的字符串并输出。
【输入】
一个包括空格的字符串,以回车结束输入。
示例 1 :Waiting for my favorite songs
【输出】
提取每个单词或数字的第一个字符生成的一个新的字符串
示例 1 :Wfmfs
【代码】
user_input = input() sentence = user_input.split(' ') for i in range(len(sentence)): print(sentence[i][0],end='')【描述】
用户输入一个数字和一个字母组成的座位号,根据字母判断位置是窗口还是过道。目前中国高铁和国内飞机窗口位置的字母是’A’和’F’,过道位置是’C’和 ‘D’,中间位置是’E’。
每个车厢座位排数是1-17,字母不区分大小写。
【输入】
输入一个数字和字母组合成的字符串
示例 1 :12F
示例 2 :2C
【输出】
‘窗口’或’过道’ 或’输入错误’
示例 1 :窗口
示例 2 :过道
【代码】
ticket = input() if 2 <= len(ticket) <= 3: if ticket[:-1].isdigit() == True and 1<=int(ticket[:-1])<=17: if ticket[-1] in ['a','f','A','F']: print("窗口") elif ticket[-1] in ['c','d','C','D']: print("过道") else: print("输入错误") else: print("输入错误") else: print('输入错误')【描述】
画出系统时间。具体包括:年,月,日,小时,分,秒。
【输入】
无
【输出】
【代码】
import turtle, datetime def drawGap(): # 绘制数码管间隔 turtle.penup() turtle.fd(5) def drawLine(draw): # 绘制单段数码管 drawGap() turtle.pendown() if draw else turtle.penup() turtle.fd(40) drawGap() turtle.right(90) def drawDigit(d): # 根据数字绘制七段数码管 drawLine(True) if d in [2, 3, 4, 5, 6, 8, 9] else drawLine(False)#日中间那一横 drawLine(True) if d in [0, 1, 3, 4, 5, 6, 7, 8, 9] else drawLine(False)#日右下角那一竖 drawLine(True) if d in [0, 2, 3, 5, 6, 8, 9] else drawLine(False)#日下面那一横 drawLine(True) if d in [0, 2, 6, 8] else drawLine(False)#日左下角那一竖 turtle.left(90) drawLine(True) if d in [0, 4, 5, 6, 8, 9] else drawLine(False)#日左上角那一竖 drawLine(True) if d in [0, 2, 3, 5, 6, 7, 8, 9] else drawLine(False)#日上面那一横 drawLine(True) if d in [0, 1, 2, 3, 4, 7, 8, 9] else drawLine(False)#日右上角那一竖 turtle.left(180) turtle.penup() turtle.fd(20) def drawDate(date): turtle.pencolor("red") for i in date: if i == '-': turtle.write('年', font=("Arial ", 36, "normal")) turtle.pencolor("green") turtle.fd(50) elif i == '=': turtle.write('月', font=("Arial", 36, "normal")) turtle.pencolor("blue") turtle.fd(50) elif i == '+': turtle.write('日', font=("Arial", 36, "normal")) turtle.pencolor("yellow") turtle.fd(50) elif i == '*': turtle.write('时', font=("Arial", 36, "normal")) turtle.pencolor("purple") turtle.fd(50) elif i == '/': turtle.write('分', font=("Arial", 36, "normal")) turtle.pencolor("gold") turtle.fd(50) elif i == '$': turtle.write('秒', font=("Arial", 36, "normal")) else: drawDigit(eval(i)) def main(): turtle.speed(30) #海龟移动速度 turtle.setup(1400, 350, 200, 200)#设置窗口大小 turtle.penup() turtle.fd(-650) turtle.pensize(5) drawDate(datetime.datetime.now().strftime('%Y-%m=%d+%H*%M/%S$')) turtle.hideturtle() turtle.done() main()