赞
踩
目录
1.获得用户输入的一个整数N,计算并输出N的32次方。
- N=eval(input("请输入一个整数N:"))
- print(N**32)
2.获得用户输入的一段文字,将这段文字进行垂直输出。
- str=input("请输入一句话:")
- n=len(str)
- for i in range(n):
- print(str[i])
3.获得用户输入的一个合法算式,例如1.2+3.4,输出运算结果。
print(eval(input("请输入一个合法算式:")))
4.获得用户输入的一个小数,提取并输出其整数部分。
- num=eval(input("请输入一个小数:"))
- print(int(num))
5.下面这段代码能够获得用户输入的一个整数N,计算并输出1到N相加的和。然而,这段代码存在多处语法错误,请指出错误所在并纠正。
- n=eval(input("请输入整数N:"))
- sum=0
- for i in range(n):
- sum+=i+1
- print(n)
- print("1到N求和结果:{}".format(sum))
编程题
1.获得用户输入的一个整数,输出该整数百位及以上数字。
- num=input('请输入一个整数:')
- if len(num)<3:
- print('该整数无百位及以上的数字')
- else:
- print(num[:-2])
2.获得用户输入的一个字符串,将字符串按空格分割,然后逐行打印出来。
- str=input("请输入一个字符串:")
- n=" ".join(str)
- for i in n:
- print(i)
3.程序读入一个表示星期几的数字(1-7),输出对应的星期字符串名称。例如:输入3,返回“星期三”。
- day=eval(input("请输入星期几的数字(1-7):"))
- week=["星期一","星期二","星期三","星期四","星期五","星期六","星期日"]
- print(week[day-1])
4.设n是一个自然数,如果n的各位数字反向排列所得的自然数与n相等,则被称为回文数。从键盘输入一个5位数字,请编写程序判断这个数字是不是回文数字。
- num=input("请输入任意一个5位数:")
- if num[0]==num[4] and num[1]==num[3]:
- print("这个数字是回文数")
- else:
- print("这个数字不是回文数")
或者
- num=input("请输入任意自然数:")
- n=num[::-1]
- if num==n:
- print("这个数字是回文数")
- else:
- print("这个数字不是回文数")
5.输入一个十进制整数,分别输出其二进制、八进制、十六进制字符串。
- num=eval(input("请输入一个十进制整数:"))
- print("十进制{0}转换为二进制数为{0:b},转换为八进制数为{0:o},\
- 转换为十六进制数为{0:x}".format(num,))
1.输入一个年份,输出是否为闰年。#闰年条件,能被4整除但不能被100整除,或者能被400整除的年份都是闰年。
- year=eval(input("请输入一个年份:"))
- if year % 4 == 0 and year % 100 != 0:
- print("{}是闰年".format(year))
- elif year % 400 == 0:
- print("{}是闰年".format(year))
- else:
- print("{}不是闰年".format(year))
2.最大公约数计算。获得两个整数,求出这两个最大整数的最大公约数和最小公倍数。最大公约数的计算一般使用辗转相除法,最小公倍数则使用两个数的乘积除以最大公约数。
- a=int(input("请输入第一个数:"))
- b=int(input("请输入第二个数:"))
- m=max(a,b)
- n=min(a,b)
- while m%n!=0:
- m,n=n,m%n
- print("两个数字的最大公约数为{}".format(n))
- print("两个数字的最小公倍数为{}".format(a*b/n))
-
3.统计不同字符个数。用户从键盘键入一行字符,编写一个程序,统计并输出其英文字符、数字、空格和其他字符的个数。
- str=input("请输入一行字符:")
- m=n=o=p=0
- for c in str:
- if "a"<=c<="z" or "A"<=c<="z":
- m+=1
- elif "0"<=c<="9":
- n+=1
- elif c==" ":
- o+=1
- else:
- p+=1
- print("英文字符个数为{},数字字符个数为{},\
- 空格字符个数为{},其他字符个数为{}".format(m,n,o,p))
4.猜数字游戏续。当用户输入的不是整数(如字母、浮点数等)时,程序会终止执行退出。改编题目1中的程序,当用户输入错误时给出“输入内容必须为整数!”的提示,并让用户重新输入。
- import random
- targe=random.randint(1,1000)
- count=0
- while True:
- try:
- guess=eval(input("请输入一个整数:"))
- except:
- print("输入内容必须为整数")
- continue
- count+=1
- if guess>targe:
- print("猜大了")
- elif guess<targe:
- print("猜小了")
- else:
- print("猜对了")
- break
- print("此轮的猜测次数是:",count)

5.羊车门问题。有三扇关闭的门,一扇门后面停着汽车,其余门后是山羊,只有主持人知道每扇门后面是什么。参赛者可以选择一扇门,在开启它之前,主持人会开启另一扇门,露出门后的山羊,然后允许参赛者更换自己的选择。请问:参赛者更换选择后能否增加猜中汽车的机会?这是一个经典问题。请使用random库对这个随机事件进项预测,分别输出参赛者改变选择和坚持选择获胜的概率。
- import random
- times=1000 #实验次数
- guess_1_count=0 #改变的人猜中的次数
- guess_2_count=0 #坚持的人猜中的次数
- for i in range(times):
- car=random.randint(1,3)
- guess=random.randint(1,3)
- if guess==car: #坚持选择的人始终选中的是车
- guess_2_count+=1
- if guess!=car: #改变选择的人能选中说明最开始选中的不是车
- guess_1_count+=1
-
- print("坚持选择获胜的概率为{:.1%}".format(guess_2_count/times))
- print("更换选择获胜的概率为{:.1%}".format(guess_1_count/times))
-
1.实现isNum()函数,参数为一个字符串,如果这个字符串属于整数、浮点数或复数的表示,则返回True,否则返回False。
- def isNum(x):
- try:
- x=eval(x)
- if type(x)==type(1) or type(x)==type(1.1) or type(x)==type(1+1j):
- return True
- else:
- return False
- except:
- return False
- x=input("请输入一个字符串:")
- print(isNum(x))
2.实现isPrime()函数,参数为整数,要有异常处理。如果整数是质数,返回True,否则返回False。
- def isPrime(x):
- while True:
- try:
- x=eval(x)
- while type(x)!=int or x<=1:
- x=eval(input("输入的不是大于1的整数!请重新输入:"))
- if x==2:
- return True
- for i in range(2,x):
- if x%i==0:
- return False
- else:
- return True
- break
- except:
- x=input("输入的不是大于1的整数!请重新输入:")
- continue
- x=input("请输入的一个大于1的整数:")
- print(isPrime(x))

3.编写一个函数计算传入字符串中数字、字母、空格以及其他字符的个数。
- def num(str):
- a=b=c=d=0
- for i in str:
- if "0"<= i <="9":
- a+=1
- elif "a"<= i <="z" or "A"<= i <="Z":
- b+=1
- elif i==" ":
- c+=1
- else:
- d+=1
- print("数字{}个,字母{}个,空格{}个,其他字符{}个".format(a,b,c,d))
- str=input("请输入一段字符串:")
- num(str)
4.编写一个函数,打印200以内的所有素数,以空格分隔。
- def n(x):
- for i in range(2,x):
- n=True
- for j in range(2,i):
- if i%j==0:
- n=False
- if n:
- print(i,end=" ")
- n(200)
-
5.编写一个函数,参数为一个整数n。利用递归获取斐波那契数列中的第n个数并返回。
- def Fib(n):
- if n==1 or n==2:
- return 1
- else:
- return Fib(n-1)+Fib(n-2)
- n=eval(input("请输入整数:"))
- print(Fib(n))
1.英文字符频率统计。编写一个程序,对给定字符串中出现的a~z字母频率进行分析,忽略大小写,采用降序排列。
- str=input("请输入一段字符串:")
- a=str.lower()
- b={}
- for i in a:
- if "a"<=i<="z":
- b[i]=b.get(i,0)+1
- c=list(b.items())
- c.sort(key=lambda x:x[1],reverse=True) #对二维数据进行降序排列
- for i in range(len(c)):
- character,count=c[i]
- print("{0:<3}{1:>5}".format(character,count))
2.中文字符频率统计。编写一个程序,对给定字符串中出现的全部字符(含中文字符)频率进行分析,采用降序方式排列。
- str=input("请输入一段字符串:")
- b={}
- for i in str:
- b[i]=b.get(i,0)+1
- c=list(b.items())
- c.sort(key=lambda x:x[1],reverse=True) #对二维数据进行降序排列
- for i in range(len(c)):
- character,count=c[i]
- print("{0:<3}{1:>5}".format(character,count))
3.随机密码生成。编写程序在26个字母大写和9个数字组成的列表中随机生成10个8位密码。
- import random
- str=[]
- password_list=[]
- password=[]
- for i in range(ord("a"),ord("z")): #密码组成
- str.append(chr(i))
- for i in range(ord("A"),ord("Z")):
- str.append(chr(i))
- for i in range(10):
- str.append(i)
- for i in range(10): #随机生成密码
- for j in range(8):
- j=random.randint(0,len(str)-1)
- password.append(str[j])
- password_list.append(password.copy())
- password.clear()
- for i in password_list: #密码打印
- for j in i:
- print(j,end='')
- print(' ')

4.重复元素判定。编写一个函数,接收列表作为参数,如果一个元素在列表中出现了不止一次,则返回True,但不要改变原来列表的值。同时编写调用这个函数和输出结果的程序。
- def repeat(list=[]):
- for i in range(len(list)):
- for j in range(len(list)):
- if list[j]==list[i]:
- return True
- list=['e','d','f',1,4,5,6,6,4,3]
- print(repeat(list))
5.重复元素判定续。利用集的无重复性改变上一个程序,获得一个更快更简洁的版本。
- def repeat(list=[]):
- set_list=set(list)
- if len(list)>len(set_list):
- return True
- else:
- return False
- list=['e','d','f',1,4,5,6,6,4,3]
- print(repeat(list))
1.输入一个文件和一个字符,统计该字符在文件中出现的次数。
- def repeatcount(text,a):
- text.lower()
- count=0
- for i in text:
- if i==a:
- count+=1
- return count
-
- def main(file):
- f=open(file,'r')
- text=f.read()
- f.close()
- return text
-
- text=main("E:\\全国计算机二级考试\\书上练习\\file.txt")
- a=input("请输入字符串:")
- print("{}重复了{}次".format(a,repeatcount(text,a)))

2.假设有一个英文文本文件,编写一个程序读取其内容并将里面的大写字母变成小写字母,小写字母变成大写字母。
- def upper_lower(text):
- text_r=""
- for i in text:
- if 'a'<=i<='z':
- text_r+=i.upper()
- else:
- text_r+=i.lower()
- print(text_r)
-
- def main(file):
- f=open(file,'r')
- text=f.read()
- f.close()
- return text
-
- text=main("E:\\全国计算机二级考试\\书上练习\\file.txt")
- upper_lower(text)

3.编写一个程序,生成一个10×10的随机矩阵并保存为文件(空格分隔行向量,换行分隔列向量),再写程序将刚才保存的矩阵文件另存为CSV格式,用Excel或文本编辑器打开看看结果对不对。
- import random
- def Matrix():
- matrix=""
- line=""
- for i in range(10):
- for j in range(10):
- line+="{} ".format(random.randint(1,100))
- matrix+="{}\n".format(line)
- line=""
- return matrix
-
- def output(a):
- a=Matrix()
- f=open("E:\\全国计算机二级考试\\书上练习\\matrix.csv","w")
- f.write(a.replace(" ",","))
- f.close
-
- output(Matrix())

4.编写一个程序,读取一个python源代码文件,将文件中所有除保留字外的小写字母换成大写字母,生成后的文件要能够被Python解释器正确执行。
以下以6.5代码为例。
- import keyword
- kw=keyword.kwlist
- other=["len","print","list","set"]
- kw+=other
- print(kw)
- f=open("E:\\全国计算机二级考试\\书上练习\\习题6.5.py","r")
- file=f.read()
- print(file)
- f.close
- FILE=file.upper()
- print(FILE)
-
- for word in kw:
- if word.upper() in FILE:
- FILE=FILE.replace(word.upper(),word)
- print(FILE)
-
- f_new=open("E:\\全国计算机二级考试\\书上练习\\习题6.5 改.py","w")
- f_new.write(FILE)
- f_new.close()

5.编写一个程序,要求能够将元素为任意Python支持的类型(包括含有半角逗号的字符串)的列表转储为CSV,并能够重新正确解析为列表。
- def list_csv(file,list):
- f=open(file,"w")
- f.write(",".join(list)+"\n")
- f.close
-
- def csv_list(file):
- f=open(file,"r")
- text=f.read().strip("\n").split(",")
- print(text)
- f.close
-
- list=input("请输入任意字符串:")
- list_csv("E:\\全国计算机二级考试\\书上练习\\7.5.csv",list)
- csv_list("E:\\全国计算机二级考试\\书上练习\\7.5.csv")
-
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。