1、仅使用Python基本语法(不适用任何模块),编写计算下列数学表达式的结果并输出,保留三位小数。

x = pow((pow(3,4)+5*pow(6,7))/8,0.5)
print('{:0.3f}'.format(x))
x = (((3**4)+5*(6**7))/8)**0.5
print('%0.3f'%x)
2、0x4DC0 是一个十六进制数,它对应的 Unicode 编码是中国古老的《易经》六十四卦的第一卦,请输出第 51 卦(震卦)对应的 Unicode 编码的二进制、十进制、八进制和十六进制格式。
print("二进制{0:b}、十进制{0}、八进制{0:o}、十六进制{0:x}".format(0x4DC0+50))
3、从键盘输入一个整数,在屏幕上显示输出该整数Python语言十六进制、八进制、二进制表示形式。
Tempstr = eval(input())
print("0x{0:0x},0o{0:o},0b{0:b}".format(Tempstr))
4、输出一个具有如下风格效果的文本,用作文本进度条样式,前三个数字,右对齐;后面字符,左对齐。

N = eval(input()) # N取值范围是0—100,整数
print('{:>3}%@{}'.format(N,'='*(N//5)))
5、从键盘输入一个整数和一个字符,以逗号隔开,在屏幕上显示输出一条信息。例如输入10,@,输出结果如下
![]()
a,x = input().split(',') # 请输入1个整数和1个符号,逗号隔开
print('{1:} {0:} {1:}'.format(str(a),x*eval(a)))
6、从键盘输入一个整数和一个字符,以逗号隔开,在屏幕上显示输出一条信息。

ls=input().split(',')
print(ls[0].center(eval(ls[0])*2+len(ls[0]),ls[1]))
7、根据输入字符串 s,输出一个宽度为 15 字符,字符串 s 居中显示,以“=”填充的格式。如果输入字符串超过 15 个字符,则输出字符串前 15 个字符。
s = input()
print('{:=^15}'.format(s[:15]))
8、根据输入字符串 s,输出一个宽度为 15 字符,字符串 s 居中显示,以“=”填充的格式。如果输入字符串超过 15 个字符,则输出所有字符串。
s = input()
print('{:=^15}'.format(s))
9、根据输入数字,输出一个宽度为 15 字符,数字居中显示,以“=”填充的格式,并添加千位分隔符。
num = eval(input())
print('{0:=^15,}'.format(num))
10、输出如“2020年10月10日10时10分10秒”样式的时间信息。
import time
timestr = "2020-10-10 10:10:10"
t = time.strptime(timestr, "%Y-%m-%d %H:%M:%S")
print(time.strftime("%Y年%m月%d日%H时%M分%S秒", t)
11、从键盘输入一个人的身高和体重的数字,以英文逗号隔开,在屏幕上显示输出这个人的身体质量指数(BMI),BMI 的计算公式是 BMI = 体重(kg)/ 身高的平方(m)。
h,w = eval(input()) # 请输入身高(m)和体重(kg),逗号隔开
print("BMI是 {:.1f}".format(w /(h*h) ))
12、编写程序,从键盘上获得用户连续输入且用逗号分隔的若干个数字(不必以逗号结尾),计算所有输入数字的和并输出。
n = input()
nums = n.split(',')
s = 0
for i in nums:
s+=eval(i)
print(s)
13、从键盘输入一个由 1 和 0 组成的二进制字符串 s,转换为十进制数输出显示在屏幕上。
s = input()
d = 0
while s:
d = d+(int(s[0])*pow(2,len(s)-1))
s = s[1:]
print("转换成十进制数是:{}".format(d))
14、从键盘输入一个由 1 和 0 组成的二进制字符串 s,转换为八进制数输出显示在屏幕上。
s = input() # 请输入一个由1和0组成的二进制数字串
d = 0
while s:
d = d+(eval(s[0])*pow(2,len(s)-1))
s = s[1:]
print("转换成八进制数是:{:0o}".format(d))
15、将一个列表中所有的单词首字母转换成大写。
ls = eval(input())
for i in range(len(ls)):
ls[i] = ls[i].title()
print(ls)
总结:upper()转成大写、lower()转换成小写、title()各单词首字母大写、capitalize()只首个字母大写,swapcase()大小写互换。
16、输入一个字符串,其中的字符由(英文)逗号隔开,编程将所有字符连成一个字符串,输出显示在屏幕上。
ls = input().replace(',','') # 请输入一个字符串,由逗号隔开每个字符
print('{}'.format(ls))
17、输出中文字符串s中汉字和标点符号的个数。
s = "学而时习之,不亦说乎?有朋自远方来,不亦乐乎?人不知而不愠,不亦君子乎?"
#方法一
n = 0 # 汉字个数
m = 0 # 标点符号个数
b=['"',',','?','"']
for i in range(len(s)):
if s[i] in b:
m+=1
else:
n+=1
print("字符数为{},标点符号数为{}。".format(n, m))
#方法二计算m、n
m = s.count(',') + s.count('?')
n = len(s) - m
18、输入一个字符串,检查并统计字符串中包含的英文单引号的对数。如果没有找到单引号,就在屏幕上显示“没有单引号”;每统计到2个单引号,就算一对,如果找到2对单引号,就显示“找到了2对单引号”;如果找到3个单引号,就显示“有1对配对单引号,存在没有配对的单引号”。
st = input()
pair=0
for s in st:
if s=='\'':
pair+=1
if pair == 0:
pro = "没有单引号"
elif pair % 2 == 0:
a = str(pair//2)
pro = "找到了"+a+"对单引号"
else:
a = str(pair//2)
pro = "有"+a+"对配对单引号,存在没有配对的单引号"
print(pro)
19、编写程序,生成包含1000个0~100的随机整数,并统计每个元素的出现次数。
import random
x = [random.randint(1,100) for i in range(1000)]
#使用列表
y = []
y = [x[i] for i in range(len(x)) if x[i] not in y]
for j in range(len(y)):
#print('{}:{}'.format(y[j], x.count(y[j])))
print(y[j],':',x.count(y[j]))
print('*'*30)
#使用集合,集合是无序不重复元素序列
s = set(x)
for v in s:
print(v,':',x.count(v))
print('='*30)
20、编写程序,用户输入一个列表和两个整数作为下标,然后使用切片获取并输出列表中介于两个下标之间的元素组成的列表。例如,用户输入[1,2,3,4,5,6]和2、5,程序输出[3,4,5,6]
x=eval(input('please input a list:\n'))
y1,y2=eval(input('please input two number:\n'))
print(x[y1:y2+1])
21、列表 ls 中存储了我国 39 所 985 高校所对应的学校类型,请以这个列表为数据变量,完善 Python 代码,统计输出各类型的数量。
ls = ["综合", "理工", "综合", "综合", "综合", "综合", "综合", "综合", "综合", "综合",\
"师范", "理工", "综合", "理工", "综合", "综合", "综合", "综合", "综合","理工",\
"理工", "理工", "理工", "师范", "综合", "农林", "理工", "综合", "理工", "理工", \
"理工", "综合", "理工", "综合", "综合", "理工", "农林", "民族", "军事"]
方法一:原始的统计方法
count_1=0
count_2=0
count_3=0
count_4=0
count_5=0
count_6=0
for i in range(len(ls)):
if ls[i] == str("综合"):
count_1+=1
elif ls[i] == str("理工"):
count_2+=1
elif ls[i] == str("师范"):
count_3+=1
elif ls[i] == str("农林"):
count_4+=1
elif ls[i] == str("民族"):
count_5+=1
else:
count_6+=1
print("综合:{0}\n理工:{1}\n师范:{2}\n农林:{3}\n民族:{4}\n军事:{5}\n".format(count_1,count_2,count_3,count_4,count_5,count_6))
方法二:使用列表的内置函数list.append()和list.count()
ls_1=[]
for i in range(len(ls)):
if ls[i] not in ls_1:
ls_1.append(ls[i])
for text in ls_1:
print('{}:{}'.format(text,ls.count(text)))
print('\n')
方法三:使用字典
d={}
for word in ls:
d[word]=d.get(word,0)+1
for k in d:
print("{}:{}".format(k,d[k]))
22、将列表 studs 的数据内容提取出来,放到一个字典 scores 里,在屏幕上按学号从小到大的顺序显示输出 scores 的内容。内容示例如下:
101:[85, 82, 80]
102:[75, 72, 70]
103:[95, 92, 90]
studs= [{'sid':'103','Chinese': 90,'Math':95,'English':92},
{'sid':'101','Chinese': 80,'Math':85,'English':82},
{'sid':'102','Chinese': 70,'Math':75,'English':72}]
scores = {}
for stud in studs:
sv = stud.items()
v = []
for it in sv:
if it[0] =='sid':
k = it[1]
else:
v.append(it[1])
scores[k]=v
so =list(scores.items())
so.sort(key = lambda x:x[0],reverse = False)
for l in so:
print('{}:{}'.format(l[0],l[1]))
23、 编写代码完成如下功能:
(1)建立字典 d,包含内容是:"数学":101, "语文":202, "英语":203, "物理":204, "生物":206。
(2)向字典中添加键值对"化学":205。
(3)修改"数学"对应的值为 201。
(4)删除"生物"对应的键值对。
(5)打印字典 d 全部信息。
d = {"数学":101, "语文":202, "英语":203, "物理":204, "生物":206}
d["化学"]=205
d["数学"]=201
del d["生物"]
for key in d.keys():
print("{}:{}".format(d[key],key))
24、实现将列表 ls = [23,45,78,87,11,67,89,13,243,56,67,311,431,111,141] 中的素数去除,并输出去除后列表 ls 的元素个数。
def is_prime(n):
for i in range(2,n):
if n%i == 0:
return False
return True
ls = [23,45,78,87,11,67,89,13,243,56,67,311,431,111,141]
for i in ls.copy():
if is_prime(i) == True:
ls.pop(ls.index(i))
print(len(ls))
25、实现功能:从键盘输入一个汉字,在屏幕上显示输出该汉字的 Unicode 编码值。
s = input()
print("\"{}\"汉字的Unicode编码:{}".format(s,chr(ord(s))))
26、从键盘输入一个列表,计算输出列表元素的平均值。
def mean(numlist):
s = 0.0
for num in numlist:
s = s + num
return s
#请输入一个列表:
ls = eval(input())
print("平均值为:",mean(ls)/len(ls))
27、从键盘输入 3 个数作为三角形的边长,在屏幕上显示输出由这 3 个边长构成三角形的面积(保留 2 位小数)。
a,b,c = eval(input())
p = (a+b+c)/2
area = pow(p * (p-a)*(p-b)*(p-c),0.5)
print('{:.2f}'.format(area))
28、根据斐波那契数列的定义,F(0)=0,F(1)=1, F(n)=F(n–1)+F(n–2)(n≥2),输出不大于 100 的序列元素,
a,b = 0, 1
while a <= 100:
print(a, end = ",")
a, b = b, (a+b)
29、编写程序,获得用户输入的数值 M 和 N,求 M 和 N 的最大公约数。
def GreatCommonDivisor(a,b):
if a > b:
a,b = b,a
r = 1
while r != 0:
r = a % b
a = b
b = r
return a
m = eval(input())
n = eval(input())
print(GreatCommonDivisor(m,n))
30、从键盘输入一个列表,计算输出列表元素的均方差。
def mean(numlist):
s = 0.0
for num in numlist:
s = s + num
return s/len(numlist)
def dev(numlist,mean):
sdev = 0.0
for num in numlist:
sdev = sdev + (num - mean)**2
return (sdev /(len(numlist)-1) )** 0.5
#请输入一个列表:
ls = eval(input(""))
print("均方差为:{:.2f}".format(dev(ls,mean(ls))))
31、计算两个向量的内积。从键盘接收一个整数 n,作为一维向量的长度;然后输入 n 个整数,以英文逗号隔开,存成一个向量 x,然后再接收另 n 个整数,以逗号隔开,存成另一个向量 y,然后计算两个向量对应元素的乘积的和。在屏幕上输出结果。
n = eval(input())
xin = input().split(',')
yin = input().split(',')#隔开之后是str
sum = 0
for i in range(n):
sum += eval(xin[i]) * eval(yin[i])
print("x和y的内积是:", sum)
32、从键盘输入一个用于填充的图符,一个字符串,一个要显示的字符串的总长度;编程将输入的字符串,居中输出显示在屏幕上,用填充图符补齐到输入的总长度。如果总长度处输入的不是正整数,则提示请输入一个正整数,并重新提示输入,直至输入正整数。
输入:
请输入填充符号:@
请输入要显示的字符串:qq
请输入字符串总长度:r
请输入一个正整数
请输入字符串总长度:3.4
请输入一个正整数
请输入字符串总长度:4
输出:
@qq@
a = input() # 请输入填充符号
c = input() # 请输入要显示的字符串
flag = 1
while flag:
try:
b = eval(input()) # 请输入字符串总长度
except:
flag = 1
print("请输入一个正整数")
else:
if type(b)== int and b>0:
flag = 0
else:
flag = 1
print("请输入一个正整数")
print('{0:{1:}^{2:}}'.format(c,a,b))
33、某自然数除它本身之外的所有因子之和等于该数,则该数被称为完数。请输出1000以内的完数。
for i in range(2,1001):
#先求i的所有因子之和,用循环
s = 0
for j in range(1,i):
if i%j == 0:
s+=j
else:
continue
if s == i:
print(i)
else:
continue
#判断与i相等,则是完数,输出 ,不是的话 ,循环继续
34、计算整数 N 到整数 N+100 之间所有奇数的数值和,不包含 N+100,并将结果输出,整数 N 由用户给出。
N = input("请输入一个整数: ")
N=eval(N)
x=0
for i in range(N,N+100):
if i%2==1:
x+=i
print(x)
35、经常会有要求用户输入整数的计算需求,但用户未必一定输入整数。为了提高用户体验,编写 getInput() 函数处理这样的情况。请补充如下代码,如果用户输入整数,则直接输出整数并退出,如果用户输入的不是整数,则要求用户重新输入,直至用户输入整数为止。
def getInput():
try:
txt=input() #请输入整数
while eval(txt) != int(txt):
txt=input() #请输入整数
except:
getInput()
return eval(txt)
print(getInput())
这篇博客介绍了多个使用Python基本语法的编程练习,包括数学表达式计算、数字转换、字符串操作、输入输出处理、时间格式化、字符统计、算法应用等,适合初学者巩固Python基础知识。

2905

被折叠的 条评论
为什么被折叠?



