python 列表 字典 元组

#-*- coding:utf-8 -*-

#什么是编译,什么叫解释?
#答;编译器是把源程序的每一条语句都编译成机器语言,并保存成二进制文件;
#   解释器则是只在执行程序时,才一条一条的解释成机器语言给计算机来执行

#除了Python语言,你还能举出其他的格式相关性语言的例子吗?
#答:C++ 和 Java

#举例说明在赋值语言方面,和C语言相比,Python语言的有哪些额外的功能?
#答:C 语言是变量(也即内存地址)之间的交互,Python 是对象(数据)之间的交互
#   Python 把一切数据都看成「对象」。它为每一个对象分配一个内存空间。 一个对象被创建后,它的 id 就不再发生变化。


#如何确定一个变量的类型?答:用type()函数来确定
i = 10
print(type(i))

#列出变量的主要类型。
#答:整型,浮点型,字符串,布尔型,列表,元组,字典,集合,None

#如何将一个字符串变量转换成数值变量?
#  答;在前面加int


#列出条件为假的情况
a = 97
b = 50
if a<b:
    print(a<b)
else:
    print(a<b)

#用三目运算符实现下述功能:90分及其以上的都为“优秀”;90分以下的都为“合格”。
def compare(num):
    for item in num:
        st = "优秀" if (item>90) else "合格"
        print(st)

num = [70,80,90,99,95,96]
compare(num)

'''
实现一个计算器
        基本功能:加、减、乘、除
        提高功能:幂、余数
        提高功能:如何排除除0的情况
'''


# 定义函数
def add(x, y):
    #相加
    return x + y
def subtract(x, y):
    #相减
    return x - y
def multiply(x, y):
    #相乘
    return x * y
def divide(x, y):
    #相除
    return float(x / y)

# 用户输入
print("选择运算:")
print("1、相加")
print("2、相减")
print("3、相乘")
print("4、相除")
print("5、幂次")
print("6、取余")
choice = str(input("输入你的选择(1/2/3/4/5/6):"))

num1 = float(input("输入第一个数字: "))
num2 = float(input("输入第二个数字: "))

if choice == '1':
    print(num1, "+", num2, "=", add(num1, num2))

elif choice == '2':
    print(num1, "-", num2, "=", subtract(num1, num2))

elif choice == '3':
    print(num1, "*", num2, "=", multiply(num1, num2))

elif choice == '4':
    if num2 == 0:
        print("除数为0,输入错误!!")
    else:
        print(num1, "/", num2, "=", divide(num1, num2))
elif choice == '5':
    print(num1,"^",num2, "=%s"%(pow(num1,num2)))
elif choice == '6':
    if num2 == 0:
        print("除数为0,输入错误!!")
    else:
        print(num1,"%",num2, "=%s"%(num1%num2))
else:
    print("非法输入")

#复数如何表示?如何运算?
'''''
复数是由一个实数和一个虚数组合构成,表示为:x+yj
一个负数时一对有序浮点数(x,y),其中x是实数部分,y是虚数部分。
Python语言中有关负数的概念:
1、虚数不能单独存在,它们总是和一个值为0.0的实数部分一起构成一个复数
2、复数由实数部分和虚数部分构成
3、表示虚数的语法:real+imagej
4、实数部分和虚数部分都是浮点数
5、虚数部分必须有后缀j或J
'''
class Complex:
    def __init__(self, real, virtual):
        self.real = real
        self.virtual = virtual

    def __add__(self, other):
        return Complex(self.real + other.real, self.virtual + other.virtual)

    def __sub__(self, other):
        return Complex(self.real - other.real, self.virtual - other.virtual)

    def __mul__(self, other):
        return Complex(self.real * other.real - self.virtual * other.virtual,
                       self.real * other.virtual + other.real * self.virtual)



if __name__ == '__main__':
    while True:
        print("===输入第一个复数===")
        a = int(input("实部:"))
        b = int(input("虚部:"))
        print("===输入第二个复数===")
        c = int(input("实部:"))
        d = int(input("虚部:"))

        c1 = Complex(a, b)
        c2 = Complex(c, d)

        print("===希望执行的运算===")
        sign = int(input("加法(0);减法(1);退出(4):"))

        if sign == 0:
            print('相加的结果:%s'%( c1 + c2))

        elif sign == 1:
            print('相减的结果为:%s'%(c1 - c2))
            print("=" * 20)
        else:
            break



#列表中元素类型都必须一致吗 答:不是必须一致
list1 = [1,2,'sunck','good']
print(list1)

#列表可以放入列表吗 答:可以
list1.append([3,4])
print(list1)

#list的extend方法和+的区别 答:+改变了列表的id;extend方法没有改变列表id
list2 = ['my','name']
list3 = list1+list2
print(id(list1))
print(id(list3))
list1.extend(list2)
print(id(list1))

#*号可以应用于列表吗 答:可以,表示重复
print(list1*2)

#sequence中的index(索引)可以是负数吗? 答:可以
print(list1[-1])

#如何定义只有一个元素的元组?答:在元素后面加 ,
tuiple = (1,)
print(type(tuiple))

#字典的读取有两种形式,一种是直接读取,一种是通过get方法读取,两种方式有什么区别?
#答:如果当前key值存在,两者没有区别;但是当key值不存在时,get会返回一个None,而
#直接获取会报错
disc = {'name':'zt',
        'age':'100'
        }
print(disc['name'],disc.get('name'))
print(disc.get('class'))
# print(disc['class'])

#给定初值、差和长度,输出等差数列
s = []
for i in range(2,9,2):
    s.append(i)
print(s)


#查找列表中的某一特定值,输出其位置
p = s.index(4)
print(p)


#把列表中的所有数据都加起来
ssum = sum(s)
print(ssum)

#求列表中最大或最小值
maxi = max(s)
mini = min(s)

print("max= %d"%(maxi),"min=%d"%mini)

#把列表中的偶数都挑出来
for i in range(11,15):
    s.append(i)
oushu = []
for item in s:
    if item%2 == 0:
        oushu.append(item)
print(oushu)

#反转列表
s = s[::-1]
print(s)

#把列表中素数挑出来*
sushu = []
for item in s:
    if item%2 != 0:
        sushu.append(item)
print(sushu)


#排序列表* sort函数默认为升序
s.sort()
print(s)

#举例集合运算:交集、并集、差集、对称差

setA={1,2,3,4}
setB={3,4,5,6}
print(setA-setB) # - 取差集
print(setB-setA) # - 取差集

print(setA&setB) # & 取交集

print(setA|setB) # | 取并集

print(setA^setB) # ^ 对称差集

#举例集合运算:属于,包含
list_1 = [1,3,7,6,4,8,9]
#子集:3是1的子集
list_3 = set([1,3,7])
print(list_3.issubset(list_1))
if list_3.issubset(list_1):
    print("list_3属于list_1")




#集合方法remove和discard的区别?
#答:discard相对于remove方法的好处是,如果你试图删除一个集合中不存在的值,系统不会返回「KeyError」。

print(setA.discard(51))
# print(setA.remove(66))

#有一个列表,其元素都是整数,如何对其进行倒排序?
#方法一
ss = [1,5,6,7,3,4]
ss.sort(reverse=True)
print(ss)
#反序
ss.reverse()
print(ss)
#sorted
sss = sorted(ss)
print(sss)

#举例说明如何使用slice技术部分完成序列的修改、删除、插入

# 替换多个元素
alist = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
alist[0:3] = ['a','b','c']
print(alist)

# 删除切片
alist = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
del alist[3:6]
print(alist)

#插入 在某个位置插入多个元素
alist = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
alist[3:3] = ['a','b','c']
print(alist)





#举例说明如何使用enumerate和zip函数
#答:enumerate函数可以同时返回列表或元组等可迭代对象的下标和内容
seq=[1,2,'3','hello world']
#使用enumerate函数迭代seq
for i,element in enumerate(seq):
    print i,element
#答:zip函数可以接受一系列的可迭代对象作为参数,将对象中对应的元素打包成一个个tuple(元组),
# 然后由这些tuple(元组)组成一个list(列表),故其返回值为list(列表)
a=[1,2,3,4,5]
b=['a','b','c','d']
c=zip(a)
print type(c)
print c
c=zip(a,b)
print c

#举例说明如何使用filter和map函数
#答:filter 是通过生成 True 和 False 组成的迭代器将可迭代对象中不符合条件的元素过滤掉;
# 而 map 返回的则是 True 和 False 组成。
res1 = map(lambda n: n > 5, range(10))
lt1 = list(res1)
print(lt1)

res2 = filter(lambda n: n > 5, range(10))
lt = list(res2)
print(lt)





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

i_止于盛夏

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值