请问以下变量哪些是tuple类型:
a = ()
b = (1)
c = [2]
d = (3,)
e = (4,5,6)
answer
在Python中,元组(tuple)是由逗号分隔的一组值组成的有序序列,通常用圆括号括起来。让我们逐个检查变量,看哪些是元组类型:
a = ():这是一个空元组,是元组类型。
b = (1):这是一个包含一个整数值的表达式,而不是元组类型。
c = [2]:这是一个包含一个整数值的列表,而不是元组类型。
d = (3,):这是一个包含一个整数值的元组,逗号告诉Python这是一个元组。
e = (4,5,6):这是包含三个整数值的元组。
所以,元组类型的变量是 a、d、e。

字符串格式化的三种方法
int('Name: ' + p.name + ', Age: ' + str(p.age) + ', Sex: ' + p.sex)
content = 'Name: %s, Age: %i, Sex: %c' % (p.name, p.age, p.sex)
print(content)
class Person:
def __init__(self):
self.name = 'JarvisMa'
self.age = 22
self.sex = 'm'
def __str__(self):
return 'Name: {user.name}, Age: {user.age}, Sex: {user.sex}'.format(user=self)
print('{0}, {1}, {0}'.format(1, 2))
python允许对实例变量绑定任务数据
class Student(object):
def __init__(self, name, score):
self.name = name
self.score = score
def get_grade(self):
if self.score >= 90:
return 'A'
elif self.score >= 60:
return 'B'
else:
return 'C'
>>> bart = Student('Bart Simpson', 59)
>>> lisa = Student('Lisa Simpson', 87)
>>> bart.age = 8
>>> bart.age
8
>>> lisa.age
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'Student' object has no attribute 'age'
如何让内部属性不被外部访问
- 通过getter和setter方法来修改属性
- Python本身没有任何机制阻止你干坏事,一切全靠自觉
python函数传参类型和顺序等
- 位置参数
- 默认参数:
- 可变参数:
- 定义可变参数和定义一个list或tuple参数相比,仅仅在参数前面加了一个*号。
- 在函数内部,参数numbers
接收到的是一个tuple
- Python允许你在list或tuple前面加一个*号,把list或tuple的元素变成可变参数传进去
- 关键字参数
- extra表示把extra这个dict的所有key-value用关键字参数传入到函数的kw参数,kw将获得一个dict,
注意kw获得的dict是extra的一份拷贝
,对kw的改动不会影响到函数外的extra
- 命令关键字参数
- 限制关键字参数的名字,就可以用命名关键字参数
- 命名关键字参数需要
一个特殊分隔符*,*后面的参数被视为命名关键字参数
- 如果函数定义中
已经有了一个可变参数,后面跟着的命名关键字参数就不再需要一个特殊分隔符*了
- 命名关键字参数必须传入参数名,这和位置参数不同
- 命名关键字参数可以有缺省值
- 参数组合:
必选参数、默认参数、可变参数、命名关键字参数和关键字参数