Python第二章作业
程序员文章站
2022-07-14 20:05:37
...
1、已知复数 x = 6+ 8j 请写出它的模、实部、虚部及共轭复数的命令,并写出运行结果。
>>> x=6+8j
>>> abs(x) #复数的模
10.0
>>> x.real #实部
6.0
>>> x.imag #虚部
8.0
>>> x.conjugate() #共轭复数
(6-8j)
2、已知a= [97, 98, 99,100], b = (97, 98, 99,100), c = {‘x’:97, ‘y’:98, ‘z’:99,’q’:100}, d = {97, 98, 99,100},则a[1]、b[1]、c[1]、d[1]及c[‘q’])的运行结果分别是什么?并说明理由。
>>> a= [97, 98, 99,100]
>>> a[1] #列表使用下标访问指定位置的元素,a[1]对应98
98
>>> b = (97, 98, 99,100)
>>> b[1] #元组也支持使用下标访问指定位置的元素,b[1]对应98
98
>>> c = {'x':97, 'y':98, 'z':99,'q':100}
>>> c[1] #错误,字典对象的下标是"键",不能这样使用,应改为c['x']
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
KeyError: 1
>>> d = {97,98,99,100}
>>> d[1] #错误,集合是一个无序的不重复元素序列,不可这样用。
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'set' object does not support indexing
>>> c['q']
100
3、写出以下命令的运行结果,并说明理由。
>>> 2 or 3
2 #全为or,为真,返回第一个真值
>>> 2 and 3
3 #全为and,为真 ,返回最后一个计算的表达式的值作为整个表达式的值
>>> 2 and 3 and True
True #全为and,为真 ,返回最后一个计算的表达式的值作为整个表达式的值
>>>0 and 3 and 1
0 #全为and,为假 ,返回第一个假值
>>> 0 and 3 or 1
1 #and比or优先级高,0and3为假,返回第一个假值0,0 or1 为假,返回最后一个值1
>>> 0 and 3 or 1 or 4
1 #and比or优先级高,0and3为假,返回第一个假值0,0 or1 为假,返回最后一个值1,1 or 4 为真,返回第一个真值
>>> 0 or False and 1
False # and 比or 优先级高 False and 1为假,返回第一个假值False,0 or False 为假,返回最后一个值
4、编写小程序,输入一个三角形的三边,输出它的面积,并写出运行结果。(输入能够组成三角形的边)
import math
a1=int (input("请输入第一条边: "))
a2=int (input("请输入第二条边: "))
a3=int (input("请输入第三条边: "))
p = (a1+a2+a3)/2
temp = p*(p-a1)*(p-a2)*(p-a3)
area = math.sqrt(temp)
print("该三角形的面积为:",area)
运行结果:
请输入第一条边: 3
请输入第二条边: 4
请输入第三条边: 5
该三角形的面积为: 6.0
5、编写小程序,输入两个集合setA和setB,分别输出它们的交集、并集、对称差集和差集,并写出运行结果。
setA ={1,2,3,4,5}
setB ={3,4,5,6,7}
print("交集:", setA | setB)
print("并集:", setA & setB)
print ("对称差集:",setA^setB)
print("差集setA-setB:", setA - setB)
运行结果
交集: {1, 2, 3, 4, 5, 6, 7}
并集: {3, 4, 5}
对称差集: {1, 2, 6, 7}
差集setA-setB: {1, 2}
6、编写小程序,输入一个三位整数,将其反向输出。如输入789,输出987。
s=input("请输入一个三位整数:")
print(s[::-1])
运行结果
请输入一个三位整数:789
987
7、编写小程序,输入一个自然数,输出它的二进制、八进制、十六进制表示形式。
a=int (input("请输入一个整数: "))
print("二进制:",bin(a))
print("八进制:",oct(a))
print("十六进制:",hex(a))
运行结果
请输入一个整数: 85
二进制: 0b1010101
八进制: 0o125
十六进制: 0x55
8、编写程序,输入任意大的自然数,输出各位数字之和。
num=input("请输入一个自然数:")
print(sum(map(int,num)))
#sum() 表示求和,map(int,num) 表示将num的各位转换成整数
运行结果
请输入一个自然数:85
13
9、编写小程序,输入包含若干集合的列表,输出这些集合的并集和交集。要求使用reduce()完成。
from functools import reduce
SetA = eval(input("请输入一个集合列表:"))
print("并集:",reduce(lambda x,y:x | y,SetA))
print("交集:",reduce(lambda x,y:x & y,SetA))
运行结果
请输入一个集合列表:{1,2,3,4,5},{2,3,4,5,6}
并集 :{1, 2, 3, 4, 5, 6}
交集 :{2, 3, 4, 5}
10、将如下生日歌进行改善:将所有英文字母小写,去除首尾空格,将俚语替换为书面语。
string1 = ’ haPPy BiRthDAy To u’
string2 = ‘Happy biRthDAy To you’
string3 = ’ haPpy BirThdAy 2 deAr LiLi’
string4 = ’ happy birthday 2 u’
string1 = ' haPPy BiRthDAy To u'
string2 = 'Happy biRthDAy To you'
string3 = ' haPpy BirThdAy 2 deAr LiLi'
string4 = ' happy birthday 2 u'
print(string1.lower().lstrip().strip().replace("u","you"))
print(string2.lower().lstrip().strip())
print(string3.lower().lstrip().strip().replace("2","to"))
print(string4.lower().lstrip().strip().replace("2","to").replace("u","you"))