-
因为
()
既可以表示tuple,又可以作为括号表示运算时的优先级,结果 (1) 被Python解释器计算出结果 1,导致我们得到的不是tuple,而是整数 1。正是因为用()定义单元素的tuple有歧义,所以 Python 规定,单元素 tuple 要多加一个逗号“,”,这样就避免了歧义
查看全部 -
请编写接受可变参数的 average() 函数。
def average(*args):
sum = 0.0
if len(args) == 0:
return sum
for x in args:
sum = sum +x
return sum / len(args)
print average()
print average(1, 2)
print average(1, 2, 2, 3, 4)
查看全部 -
请定义一个 greet() 函数,它包含一个默认参数,如果没有传入,打印 'Hello, world.',如果传入,打印 'Hello, xxx.'
def greet(x = 'world'):
print 'Hello, '+ x +'.'
greet()
greet('Bart')
查看全部 -
>>> int('123') 123 >>> int('123', 8) 83
int('123',8)中123是8进制的,所以换算成十进制等于:1*8^2+2*8^1+3*8^0=83
查看全部 -
函数 move(n, a, b, c) 的定义是将 n 个圆盘从 a 借助 b 移动到 c。
def move(n, a, b, c):
if n == 1:
print a,'-->',c
return
move(n-1,a,c,b)//先把上面n-1个圆盘看成整体,先把n-1个移到b
print a,'-->',c//把第n个圆盘移到c
move(n-1,b,a,c)//把剩下的n-1个圆盘移到c
查看全部 -
任务
一元二次方程的定义是:ax² + bx + c = 0
请编写一个函数,返回一元二次方程的两个解。
注意:Python的math包提供了sqrt()函数用于计算平方根。
?不会了怎么办
请参考求根公式:x = (-b±√(b²-4ac)) / 2a
参考代码:
import math def quadratic_equation(a, b, c): t = math.sqrt(b * b - 4 * a * c) return (-b + t) / (2 * a),( -b - t )/ (2 * a) print quadratic_equation(2, 3, 0) print quadratic_equation(1, -6, 5)
查看全部 -
L.pop(2)删除一个元素后只剩下3个元素,L.pop(3)执行会失败
查看全部 -
转义符用反斜杠\
查看全部 -
tuple是另一种有序的列表,中文翻译为“ 元组 ”。tuple 和 list 非常类似,但是,tuple一旦创建完毕,就不能修改了。
同样是表示班里同学的名称,用tuple表示如下:
>>> t = ('Adam', 'Lisa', 'Bart')
创建tuple和创建list唯一不同之处是用
( )
替代了[ ]
。现在,这个
t
就不能改变了,tuple没有 append()方法,也没有insert()和pop()方法。所以,新同学没法直接往 tuple 中添加,老同学想退出 tuple 也不行。获取 tuple 元素的方式和 list 是一模一样的,我们可以正常使用 t[0],t[-1]等索引方式访问元素,但是不能赋值成别的元素,不信可以试试:
>>> t[0] = 'Paul' Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: 'tuple' object does not support item assignment
使用后内容不可更改
查看全部 -
假设现在班里仍然是3名同学:
>>> L = ['Adam', 'Lisa', 'Bart']
现在,Bart同学要转学走了,碰巧来了一个Paul同学,要更新班级成员名单,我们可以先把Bart删掉,再把Paul添加进来。
另一个办法是直接用Paul把Bart给替换掉:
>>> L[2] = 'Paul' >>> print L L = ['Adam', 'Lisa', 'Paul']
对list中的某一个索引赋值,就可以直接用新的元素替换掉原来的元素,list包含的元素个数保持不变。
由于Bart还可以用 -1 做索引,因此,下面的代码也可以完成同样的替换工作:
>>> L[-1] = 'Paul'
可以做替换成绩和名字位置使用
查看全部 -
1. values() 方法实际上把一个 dict 转换成了包含 value 的list。
2. 但是 itervalues() 方法不会转换,它会在迭代过程中依次从 dict 中取出 value,所以 itervalues() 方法比 values() 方法节省了生成 list 所需的内存。
3. 打印 itervalues() 发现它返回一个 <dictionary-valueiterator> 对象,这说明在Python中,for 循环可作用的迭代对象远不止 list,tuple,str,unicode,dict等,任何可迭代对象都可以作用于for循环,而内部如何迭代我们通常并不用关心。
查看全部 -
Paul同学刚来几天又要转走了,那么我们怎么把Paul 从现有的list中删除呢?
如果Paul同学排在最后一个,我们可以用list的
pop()
方法删除:>>> L = ['Adam', 'Lisa', 'Bart', 'Paul'] >>> L.pop() 'Paul' >>> print L ['Adam', 'Lisa', 'Bart']
pop()方法总是删掉list的最后一个元素,并且它还返回这个元素,所以我们执行 L.pop() 后,会打印出 'Paul'。
如果Paul同学不是排在最后一个怎么办?比如Paul同学排在第三:
>>> L = ['Adam', 'Lisa', 'Paul', 'Bart']
要把Paul踢出list,我们就必须先定位Paul的位置。由于Paul的索引是2,因此,用
pop(2)
把Paul删掉:>>> L.pop(2) 'Paul' >>> print L ['Adam', 'Lisa', 'Bart']
查看全部 -
今天,班里转来一名新同学 Paul,如何把新同学添加到现有的 list 中呢?
第一个办法是用 list 的
append()
方法,把新同学追加到 list 的末尾:>>> L = ['Adam', 'Lisa', 'Bart'] >>> L.append('Paul') >>> print L ['Adam', 'Lisa', 'Bart', 'Paul']
append()总是把新的元素添加到 list 的尾部。
如果 Paul 同学表示自己总是考满分,要求添加到第一的位置,怎么办?
方法是用list的
insert()
方法,它接受两个参数,第一个参数是索引号,第二个参数是待添加的新元素:>>> L = ['Adam', 'Lisa', 'Bart'] >>> L.insert(0, 'Paul') >>> print L ['Paul', 'Adam', 'Lisa', 'Bart']
L.insert(0, 'Paul') 的意思是,'Paul'将被添加到索引为 0 的位置上(也就是第一个),而原来索引为 0 的Adam同学,以及后面的所有同学,都自动向后移动一位。
查看全部 -
一、动态语言
Python为动态语言,定义变量时不指定变量类型,变量可以随意赋值为各种类型的变量
二、静态语言
典型语言如JAVA,变量在定义时指定变量类型,不可赋值为其他类型
查看全部 -
#单行注释
查看全部
举报