如果表达式的操作符有相同的优先级,则运算规则是从左到右计算。
比如:1-2+55-88
注意:有一个特殊的例子,如下这个是从右到左结合计算
Python 3.7.4 (tags/v3.7.4:e09359112e, Jul 8 2019, 19:29:22) [MSC v.1916 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license()" for more information.
>>> 2**2**2**2
65536
>>>
比较点 | 列表 | 元组 | 字典 | 集合 |
---|---|---|---|---|
是否可变 | 可变 | 不可变 | 可变 | 可变 |
是否有序 | 有序 | 有序 | 无序 | 无序 |
元素是否唯一 | 不唯一,可重复 | 不唯一,可重复 | 键是唯一的,值可以重复 | 是唯一的 |
创建方式 | [] | () | {key:value} | {} |
删除方式 | del、remove()、pop() | del | del | del、remove()、pop() 、clear() |
修改和插入 | append,insert,+,extend | 不可修改 | dict[key]=value | add,update, |
访问和遍历 | 索引访问 | 索引访问 | 键访问 | |
推导式 | [i for i in list] | (i for i in tuple) | ||
切片 | 支持切片 | 支持切片 | 不支持切片 | 不支持切片 |
索引 | 支持索引 | 支持索引 | 不支持索引 | 不支持索引 |
+ 和 * 运算 | 支持 | 支持 | 不支持 | 不支持 |
其他 | 不能作为字典的键 | 可以作为字典的键 |
集合不支持切片
>>> thisset={1,2,3,4,5}
>>> print(thisset)
{1, 2, 3, 4, 5}
>>> ss=thisset[1:]
Traceback (most recent call last):
File "", line 1, in
ss=thisset[1:]
TypeError: 'set' object is not subscriptable
number = input("请输入一个整数: ")
# 此处可以对输入做合法性验证
n = len(number)
sum = 0
for i in number:
sum += int(i)**n
if sum == int(number):
print(number, "is a amrstrong number.")
else:
print(number, "is not a amrstrong number.")
简单示例:
lambda x: x * x
以下代码是菜鸟学院的代码(非原创):
def partition(arr, low, high):
i = (low-1) # 最小元素索引
pivot = arr[high]
for j in range(low, high):
# 当前元素小于或等于 pivot
if arr[j] <= pivot:
i = i+1
arr[i], arr[j] = arr[j], arr[i]
arr[i+1], arr[high] = arr[high], arr[i+1]
return (i+1)
# 快速排序函数
def quickSort(arr, low, high):
if low < high:
pi = partition(arr, low, high)
quickSort(arr, low, pi-1)
quickSort(arr, pi+1, high)
arr = [10, 7, 8, 9, 1, 5, 6]
n = len(arr)
quickSort(arr, 0, n-1)
print("排序后的数组:")
for i in range(n):
print("%d" % arr[i])
Python 3 教程
廖雪峰的官方网站
快速排序算法_百度百科
Python 快速排序
xxxx
xxxx
xxxx