python编程题 您所在的位置:网站首页 python计算输入一行字符串单词的频率 python编程题

python编程题

2023-08-26 04:48| 来源: 网络整理| 查看: 265

Python编程题

题1 问题:编写一个程序,它将找到所有这些数字,可被7整除,但不是5的倍数,2000年至3200年(包括在内)。得到的数字应按逗号分隔的顺序打印在一行上。 提示:考虑使用range(#begin, #end)方法

l=[] for i in range(2000, 3201): if (i%7==0) and (i%5!=0): l.append(str(i)) print (','.join(l))

题2 问题:编写一个可以计算给定数的阶乘的程序。结果应该以逗号分隔的顺序打印在一行上。假设向程序提供以下输入:8 则输出为:40320 提示:在为问题提供输入数据的情况下,应该假设它是控制台输入。

def fact(x): if x == 0: return 1 return x * fact(x - 1) print('请输入一个数字:') x=int(input()) print (fact(x))

题3 问题:使用给定的整数n,编写一个程序生成一个包含(i, i*i)的字典,该字典包含1到n之间的整数(两者都包含)。然后程序应该打印字典。 假设向程序提供以下输入:8 则输出为: {1:1,2:4,3:9,4:16,5:25,6:36,,7:49,8:64} 提示:在为问题提供输入数据的情况下,应该假设它是控制台输入。考虑使用dict类型()

print('请输入一个数字:') n=int(input()) d=dict() for i in range(1,n+1): d[i]=i*i print(d)

题4 问题:编写一个程序,该程序接受控制台以逗号分隔的数字序列,并生成包含每个数字的列表和元组。假设向程序提供以下输入: 34岁,67年,55岁,33岁,12日,98年 则输出为:[‘34’, ‘67’, ‘55’, ‘33’, ‘12’, ‘98’] (‘34’, ‘67’, ‘55’, ‘33’, ‘12’, ‘98’) 提示:在为问题提供输入数据的情况下,应该假设它是控制台输入。方法可以将列表转换为元组

import re print('请输入一组数字:') values=input() l=values.split(",") k=re.findall(r'[0-9]+',values) t=tuple(k) print (k) print (t)

题5 问题:定义一个至少有两个方法的类: getString:从控制台输入获取字符串 printString::打印大写母的字符串。 还请包含简单的测试函数来测试类方法。 提示:使用_init__方法构造一些参数

class InputOutString(object): def __init__(self): self.s = "" def getString(self): print('请输入字符串:') self.s = input() def printString(self): print (self.s.upper()) strObj = InputOutString() strObj.getString() strObj.printString()

题6 问题: 编写一个程序,根据给定的公式计算并打印值:Q=\sqrt{[(2CD)/H]}。以下是C和H的固定值:C是50。H是30。D是一个变量,它的值应该以逗号分隔的序列输入到程序中。 例子假设程序的输入序列是逗号分隔的:100,150,180, 程序输出为:18,22,24 提示:如果接收到的输出是小数,则应四舍五入到其最近的值(例如,如果接收到的输出是26.0,则应打印为26)。在为问题提供输入数据的情况下,应该假设它是控制台输入。

#!/usr/bin/env python import math c=50 h=30 value = [] print('请输入一组数字:') items=[x for x in input().split(',')] for d in items: value.append(str(int(round(math.sqrt(2*c*float(d)/h))))) print (','.join(value))

题7 问题:编写一个程序,以2位数字,X,Y作为输入,生成一个二维数组。数组的第i行和第j列中的元素值应该是i*j。 注意:i= 0,1 . .,X - 1; j = 0, 1,­Y-1。 例子假设程序有以下输入:3、5 则程序输出为:[[0,0,0,0,0],[0,1,2,3,4],[0,2,4,6,8]] 提示:注意:如果要为问题提供输入数据,应该假设它是一个控制台输入,以逗号分隔。

print('请输入两个数字:') input_str = input() dimensions=[int(x) for x in input_str.split(',')] rowNum=dimensions[0] colNum=dimensions[1] multilist = [[0 for col in range(colNum)] for row in range(rowNum)] for row in range(rowNum): for col in range(colNum): multilist[row][col]= row*col print (multilist)

题8 问题:编写一个程序,接受逗号分隔的单词序列作为输入,按字母顺序排序后按逗号分隔的序列打印单词。假设向程序提供以下输入: without,hello,bag,world 则输出为: bag,hello,without,world 提示:在为问题提供输入数据的情况下,应该假设它是控制台输入。

items=[x for x in input().split(',')] items.sort() print (','.join(items))

题9 问题:编写一个程序,接受一行序列作为输入,并在将句子中的所有字符大写后打印行。 假设向程序提供以下输入: Hello world Practice makes perfect 则输出为: HELLO WORLD PRACTICE MAKES PERFECT 提示:在为问题提供输入数据的情况下,应该假设它是控制台输入。

lines = [] while True: s = input() if s: lines.append(s.upper()) else: break; for sentence in lines: print(sentence)

题10 问题:编写一个程序,接受一系列空格分隔的单词作为输入,并在删除所有重复的单词并按字母数字排序后打印这些单词。 假设向程序提供以下输入: hello world and practice makes perfect and hello world again 则输出为: again and hello makes perfect practice world 提示:在为问题提供输入数据的情况下,应该假设它是控制台输入。 我们使用set容器自动删除重复的数据,然后使用sort()对数据进行排序。

print('请输入一组字符串:') s = input() words = [word for word in s.split(" ")] print (" ".join(sorted(list(set(words))))) 题11

题11 问题:编写一个程序,接受一系列逗号分隔的4位二进制数作为输入,然后检查它们是否可被5整除。 可被5整除的数字将以逗号分隔的顺序打印。 例: 0100,0011,1010,1001 那么输出应该是: 1010 注意:假设数据由控制台输入。

提示:如果输入数据被提供给问题,则应该假定它是控制台输入。

value = [] print('请输入逗号分隔的4位二进制数:') items=[x for x in input().split(',')] for p in items: intp = int(p, 2) # print(intp) if not intp%5: value.append(p) print (','.join(value))

题12 题:编写一个程序,它将找到1000到3000之间的所有这些数字(均包括在内),这样数字的每个数字都是偶数。 获得的数字应以逗号分隔的顺序打印在一行上。

提示:如果输入数据被提供给问题,则应该假定它是控制台输入。

values = [] for i in range(1000, 3001): s = str(i) if (int(s[0])%2==0) and (int(s[1])%2==0) and (int(s[2])%2==0) and (int(s[3])%2==0): values.append(s) print (",".join(values))

题13 题:编写一个接受句子并计算字母和数字的程序。假设为程序提供了以下输入: Hello world! 123 然后,输出应该是: 字母10 数字3

提示:如果输入数据被提供给问题,则应该假定它是控制台输入。

print('请输入:') s = input() d={"DIGITS":0, "LETTERS":0} for c in s: if c.isdigit(): d["DIGITS"]+=1 elif c.isalpha(): d["LETTERS"]+=1 else: pass print ("LETTERS", d["LETTERS"]) print ("DIGITS", d["DIGITS"])

题14

题:编写一个接受句子的程序,并计算大写字母和小写字母的数量。 假设为程序提供了以下输入: Hello world! 然后,输出应该是: 大写实例 1 小写实例 9

提示:如果输入数据被提供给问题,则应该假定它是控制台输入。

print('请输入:') s = input() d={"UPPER CASE":0, "LOWER CASE":0} for c in s: if c.isupper(): d["UPPER CASE"]+=1 elif c.islower(): d["LOWER CASE"]+=1 else: pass print ("UPPER CASE", d["UPPER CASE"]) print ("LOWER CASE", d["LOWER CASE"])

题15 题:编写一个程序,计算a + aa + aaa + aaaa的值,给定的数字作为a的值。假设为程序提供了以下输入: 9 然后,输出应该是: 11106

提示:如果输入数据被提供给问题,则应该假定它是控制台输入。

print('请输入一个数字:') a = input() n1 = int( "%s" % a ) n2 = int( "%s%s" % (a,a) ) n3 = int( "%s%s%s" % (a,a,a) ) n4 = int( "%s%s%s%s" % (a,a,a,a) ) print (n1+n2+n3+n4)

题16

题:使用列表推导来对列表中的每个奇数。 该列表由一系列逗号分隔的数字输入。 假设为程序提供了以下输入: 1,2,3,4,5,6,7,8,9 然后,输出应该是: 1,3,5,7,9

print("输入:") values = input() numbers = [x for x in values.split(",") if int(x)%2!=0] print (",".join(numbers))

题17

题:编写一个程序,根据控制台输入的事务日志计算银行帐户的净金额。 事务日志格式如下所示: D 100 W 200

D表示存款,而W表示提款。 假设为程序提供了以下输入: D 300 D 300 W 200 D 100 然后,输出应该是: 500

提示:如果输入数据被提供给问题,则应该假定它是控制台输入。

netAmount = 0 while True: print("请输入:") s = input() if not s: break values = s.split(" ") operation = values[0] amount = int(values[1]) if operation=="D": netAmount+=amount elif operation=="W": netAmount-=amount else: pass print (netAmount)

题18 题:网站要求用户输入用户名和密码进行注册。编写程序以检查用户输入的密码的有效性。 以下是检查密码的标准:

[a-z]之间至少有1个字母[0-9]之间至少有1个数字[A-Z]之间至少有一个字母[$#@]中至少有1个字符 4.最短交易密码长度:6 5.交易密码的最大长度:12 您的程序应接受一系列逗号分隔的密码,并将根据上述标准进行检查。将打印符合条件的密码,每个密码用逗号分隔。 例:如果以下密码作为程序的输入: ABd1234@1,a F1#,2w3E*,2We3345 然后,程序的输出应该是:

ABd1234 @ 1

提示:如果输入数据被提供给问题,则应该假定它是控制台输入。

import re value = [] print("请输入:") items=[x for x in input().split(',')] for p in items: if len(p)12: continue else: pass if not re.search("[a-z]",p): continue elif not re.search("[0-9]",p): continue elif not re.search("[A-Z]",p): continue elif not re.search("[$#@]",p): continue elif re.search("\s",p): continue else: pass value.append(p) print (",".join(value))

题19 题:您需要编写一个程序,按升序对(名称,年龄,高度)元组进行排序,其中name是字符串,age和height是数字。 元组由控制台输入。 排序标准是: 1:根据名称排序; 2:然后根据年龄排序; 3:然后按分数排序。 优先级是name> age>得分。 如果给出以下元组作为程序的输入: Tom,19,80 John,20,90 Jony,17,91 Jony,17,93 Json,21,85 然后,程序的输出应该是: [(‘John’,‘20’,‘90’),(‘Jony’,‘17’,‘91’),(‘Jony’,‘17’,‘93’),(‘Json’,'21 ',‘85’),(‘Tom’,‘19’,‘80’)]

提示:如果输入数据被提供给问题,则应该假定它是控制台输入。我们使用itemgetter来启用多个排序键。

from operator import itemgetter, attrgetter l = [] print("请输入:") while True: s = input() if not s: break l.append(tuple(s.split(","))) print (sorted(l, key=itemgetter(0,1,2)))

题20 题:使用生成器定义一个类,该生成器可以在给定范围0和n之间迭代可被7整除的数字。

提示:考虑使用yield。

def putNumbers(n): i = 0 while i


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有