请问以下变量哪些是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 = nameself. score = scoredef 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'
如何让内部属性不被外部访问
内部属性不被外部访问,可以把属性的名称前加上两个下划线__,在Python中,实例的变量名如果以__开头,就变成了一个私有变量(private)
,只有内部可以访问,外部不能访问 在Python中,变量名类似__xxx__的,也就是以双下划线开头,并且以双下划线结尾的,是特殊变量,特殊变量是可以直接访问的,不是private变量 不能直接访问__name是因为Python解释器对外把__name变量改成了_Student__name
,所以,仍然可以通过_Student__name
来访问__name变量
通过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 命令关键字参数 限制关键字参数的名字,就可以用命名关键字参数 命名关键字参数需要一个特殊分隔符*,*后面的参数被视为命名关键字参数
如果函数定义中已经有了一个可变参数,后面跟着的命名关键字参数就不再需要一个特殊分隔符*了
命名关键字参数必须传入参数名,这和位置参数不同 命名关键字参数可以有缺省值 参数组合: 必选参数、默认参数、可变参数、命名关键字参数和关键字参数