摘要:本文主要向大家介绍了Python语言 是否真的如传说中的优雅,通过具体的内容向大家展示,希望对大家学习Python语言有所帮助。
本文主要向大家介绍了Python语言 是否真的如传说中的优雅,通过具体的内容向大家展示,希望对大家学习Python语言有所帮助。
Python 是否真的如传说中的优雅
Python 号称“最优雅的语言”,近年来的热度超过了“世界上最好的语言” PHP,于是简单学习了一下。发现 Python 有的语法确实很爽,比如切片。但同时觉得,有些语法对于之前主要使用 PHP 和 JavaScript 的新手来说,可能会稍感水土不服。简要列举一些比较特别的示例,分享给大家。
奇怪的语法
用 r'' 表示''内部的字符串不转义
print(r'I\'m \"OK\"!')
print('I\'m \"OK\"!')
用 '''内容''' 表示多行内容
print('''line1
line2
line3''')
要注意的运算符
python 中不存在 &&、||、=== 运算符,用以下运算符代替:
and
or
is
python 中用 // 表示相除‘舍一取整’
14 // 3
14 / 3
python 中用 ** 表示幂赋值运算
2 ** 3
内容含有中文,需要最开始一行声明 UTF-8 读取
# -*- coding: utf-8 -*-
字符串格式化输出
'Hi, %s, you have $%d.' % ('Lucy', 100)
'[%5d - %05d]' % (3, 1)
'%.2f' % 3.1415926
'growth rate: %d %%' % 7
规定定义只有一个元素的元组时,要加,消除歧义
t1 = (1,)
t2 = (1)
数据类型检查
isinstance('3.14', (int, float))
默认参数不能是可变对象(list、dict)
def add_end(L=[]):
L.append('END')
return L
add_end()
add_end()
可变参数(args 接收的是一个 tuple)
def calc(*args):
sum = 0
for n in args:
sum = sum + n * n
return sum
calc(1, 2)
calc(1, 2, 3, 4, 5)
关键字参数(kw 接收的是一个 dict)
def person(name, **kw):
print('name:', name, 'other:', kw)
person('Lucy')
person('Lucy', age=23, weight='70kg')
切片
# -*- coding: utf-8 -*-
L = [i for i in range(100)]
# 索引从 0 开始, 到 10 结束, 步长为 1
print(L[:10]) // [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
# 从索引 10 开始, 步长为 1
print(L[10:]) // [10 ,11, 12, 13, ... , 99]
# 最后 10 个元素, 步长为 1
print(L[-10:]) // [90, 91, 92, 93, 94, 95, 96, 97, 98, 99]
# 从索引 2 开始, 步长为 3
print(L[2::3]) // [2, 5, 8, 11, ... , 98]
# 索引从 4 开始, 到 50 结束, 步长为 5
print(L[4:50:5]) // [4, 9, 14, 19, 24, 29, 34, 39, 44, 49]
# 索引从 4 开始, 步长为 10
print(L[4::10]) // [4, 14, 24, 34, 44, 54, 64, 74, 84, 94]
# 索引从 4 开始, 步长为 10, 取前 3 个元素
print(L[4::10][:3]) // [4, 14, 24]
# 索引从 4 开始, 步长为 10, 从第 3 个元素往后取
print(L[4::10][3:]) // [34, 44, 54, 64, 74, 84, 94]
# 索引从 4 开始, 步长为 10, 取最后 3 个元素
print(L[4::10][-3:]) // [74, 84, 94]
# 索引从 4 开始, 步长为 10, 截掉最后 3 个元素
print(L[4::10][:-3]) // [4, 14, 24, 34, 44, 54, 64]
# 列表倒序
print(L[::-1])
# 列表倒序, 从倒数索引 3 开始, 取到末尾
print(L[3::-1]) // [3, 2, 1, 0]
# 首字母大写
def firstCharUpper(s):
return s[:1].upper() + s[1:]
print(firstCharUpper('hello'))
print(firstCharUpper('sunday'))
print(firstCharUpper('september'))
生成列表
[x * x for x in range(1, 11) if x % 2 == 0]
斐波拉契数列(Fibonacci)
def fib(max):
n, a, b = 0, 0, 1
while n < max:
print(b)
a, b = b, a + b
n = n + 1
return 'done'
装饰器
import functools
def log(func):
@functools.wraps(func)
def wrapper(*args, **kw):
print('call %s():' % func.__name__)
return func(*args, **kw)
return wrapper
匿名函数
list(map(lambda x: x * x, [1, 2, 3, 4, 5, 6, 7, 8, 9]))
偏函数
import functools
int2 = functools.partial(int, base=2)
int2('1000000')
int2('1010101')
遍历取得索引(需要额外使用 enumerate 函数)
L = ['Adam', 'Lisa', 'Bart', 'Paul']
for index, name in enumerate(L):
print(index, '-', name)
列表生成式 -- 实现找出对称的三位数,例如 121
L1 = [x for x in range(100, 1000) if str(x)[0] == str(x)[-1]]
L2 = [(100 * m) + (10 * n) + m for m in range(1, 10) for n in range (0, 10)]
装饰器 【优雅】
def log(f):
def fn(*args, **kw):
print('call ' + f.__name__ + '()...')
return f(*args, **kw)
return fn
@log
def add(x, y):
return x + y
print(add(1, 2))
斐波那契数列(0, 1, 1, 2, 3, 5, 8 ...)
class Fib(object):
def __init__(self, num):
a, b, L = 0, 1, []
for n in range(num):
L.append(a)
a, b = b, a + b
self.numbers = L
def __str__(self):
return str(self.numbers)
__repr__ = __str__
def __len__(self):
return len(self.numbers)
f = Fib(10)
print(f)
print(len(f))
本文由职坐标整理并发布,希望对同学们学习Python有所帮助,更多内容请关注职坐标编程语言Python频道!
您输入的评论内容中包含违禁敏感词
我知道了
请输入正确的手机号码
请输入正确的验证码
您今天的短信下发次数太多了,明天再试试吧!
我们会在第一时间安排职业规划师联系您!
您也可以联系我们的职业规划师咨询:
版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
沪公网安备 31011502005948号