十分钟学python-10分钟学会Python

#1. 语法

Python中没有强制的语句终止字符,代码块是通过缩进来指示的。缩进表示一个代码块的开始,逆缩进则表示一个代码块的结束。一般用4个空格来表示缩进。

声明以冒号(:)字符结束,并且开启一个缩进级别。

单行注释以井号字符(#)开头,多行注释则以多行字符串的形式出现。

赋值(事实上是将对象绑定到名字)通过等号("=”)实现

双等号("==”)用于相等判断

# 本行是注释

some_var = 3

print(some_var)

print(some_var == 4)

if some_var > 1:

print('Python就是这么简单')

3

False

Python就是这么简单

#2. 导入库

外部库可以使用 import [libname] 关键字来导入,也可以使用 from [libname] import [funcname] 来导入所需要的函数。例如:

import math

math.sqrt(25)

5.0

from math import sqrt

sqrt(25)

5.0

#3. 数据类型

查看数据类型:

type(2)

int

type('two')

str

type(True)

bool

类型转换:

float(2)

2.0

int(2.9)

2

str(2.9)

'2.9'

#4. 数学运算

10 + 4

14

10 - 4

6

10 * 4

40

10 % 4 # 计算余数

2

10 / 4

2.5

#5. 比较和布尔运算

赋值

x = 5

比较:

x > 3

True

x >= 3

True

x != 3

True

x == 5

True

布尔运算:

# and:与

5 > 3 and 6 > 3

True

# or:或

5 > 3 or 5 < 3

True

# not:非

not False

True

#6. 条件表达式

# if 语句

if x > 0:

print('positive')

positive

# if/else 语句

if x > 0:

print('positive')

else:

print('zero or negative')

positive

# if/elif/else 语句

if x > 0:

print('positive')

elif x == 0:

print('zero')

else:

print('negative')

positive

#7. 列表

列表的特点: 有序,可迭代,可变,可以包含多个数据类型

创建列表

# 两种创建空列表的方法如下

empty_list = []

empty_list = list()

# 创建列表

simpsons = ['homer', 'marge', 'bart']

获取列表数据:

# 列表的第0个元素(列表的下标从0开始,这和C语言等一致)

simpsons[0]

'homer'

# 列表元素个数

len(simpsons)

3

列表方法:

# 在尾部追加,操作符+=完成同样的功能

simpsons.append('lisa')

simpsons

['homer', 'marge', 'bart', 'lisa']

# 在尾部追加多个元素

simpsons.extend(['itchy', 'scratchy'])

simpsons

['homer', 'marge', 'bart', 'lisa', 'itchy', 'scratchy']

# 在索引位置处将数据项插入列表

simpsons.insert(0, 'maggie')

simpsons

['maggie', 'homer', 'marge', 'bart', 'lisa', 'itchy', 'scratchy']

# 列表从左往右搜索第一个出现的元素,并移除

simpsons.remove('bart')

simpsons

['maggie', 'homer', 'marge', 'lisa', 'itchy', 'scratchy']

# 替代列表第一个元素

simpsons[0] = 'krusty'

simpsons

['krusty', 'homer', 'marge', 'lisa', 'itchy', 'scratchy']

# 统计元素出现次数

simpsons.count('lisa')

1

# returns index of first instance

simpsons.index('itchy')

4

列表切片:

weekdays = ['mon', 'tues', 'wed', 'thurs', 'fri']

# 第一个元素,索引值为0

weekdays[0]

'mon'

# 前三个元素,索引值为0、1、2,,其中0可以省略

print(weekdays[0:3] == weekdays[:3])

weekdays[0:3]

True

['mon', 'tues', 'wed']

# 从索引值为3的元素的位置到最后位置的元素

weekdays[3:]

['thurs', 'fri']

# 最后一个元素

weekdays[-1]

'fri'

# 每隔两个元素进行存取

weekdays[::2]

['mon', 'wed', 'fri']

# 反转列表,等价于list(reversed(weekdays))

weekdays[::-1]

['fri', 'thurs', 'wed', 'tues', 'mon']

# 对列表进行排序 (原地修改列表但不返回列表)

simpsons.sort()

simpsons

['homer', 'itchy', 'krusty', 'lisa', 'marge', 'scratchy']

# 反向排序

simpsons.sort(reverse=True)

simpsons

['scratchy', 'marge', 'lisa', 'krusty', 'itchy', 'homer']

# 根据传入的规则排序,以长度为例

simpsons.sort(key=len)

simpsons

['lisa', 'marge', 'itchy', 'homer', 'krusty', 'scratchy']

# 返回已排序列表(并不修改原列表),可以传入排序规则:

simpsons = [ 'krusty', 'itchy', 'scratchy', 'lisa']

sorted(simpsons, key=len)

['lisa', 'itchy', 'krusty', 'scratchy']

# 对象引用

num = [10,20,30,40,50]

same_num = num

# 会同时修改两个对象

same_num[0] = 0

print(num)

print(same_num)

[0, 20, 30, 40, 50]

[0, 20, 30, 40, 50]

# 检查是否是同一个对象

num is same_num

True

# 判断两个对象是否相等

num == same_num

True

#8. 元组

元组性质: 有序,可迭代,不可变,可以包含多个数据类型

类似于列表, 但不可变

# 直接创建一个元组

digits = (0, 1, 'two')

# 将列表转化为元组

digits = tuple([0, 1, 'two'])

# 元组第三个位置的元素

digits[2]

'two'

# 元组长度

len(digits)

3

# 统计元组中元素出现的次数

digits.count('two')

1

# 返回该元素第一次出现的索引值

digits.index(1)

1

# 元组不可修改,下面语句会报错

# digits[2] = 2

#9. 字符串

字符串性质: 可迭代,不可变

# 创建字符串

s = 'I like you'

# 字符串切片

s[0]

'I'

# 长度

len(s)

10

字符串切片类似于列表切片:

s[:6]

'I like'

s[7:]

'you'

s[-1]

'u'

字符串方法 (并不修改原字符串):

s.lower()

'i like you'

s.upper()

'I LIKE YOU'

s.startswith('I')

True

s.endswith('you')

True

# 返回在字符串中的最左位置,如果没有找到,就返回-1

s.find('like')

2

# 字符串替换

s.replace('like', 'love')

'I love you'

字符串分割:

# 返回一个被空白字符分割的字符串列表

s.split(' ')

['I', 'like', 'you']

# 返回一个被特定字符分割的字符串列表

s2 = 'a, an, the'

s2.split(',')

['a', ' an', ' the']

# 字符串拼接

stooges = ['larry', 'curly', 'moe']

' '.join(stooges)

'larry curly moe'

# + 也可作字符串拼接

s3 = 'The meaning of life is'

s4 = '42'

s3 + ' ' + s4

'The meaning of life is 42'

# 移除开始和结尾的空白字符

s5 = ' ham and cheese '

s5.strip()

'ham and cheese'

格式化字符串:

# 方法1

'raining %s and %s' % ('cats', 'dogs')

'raining cats and dogs'

# 方法2

'raining {} and {}'.format('cats', 'dogs')

'raining cats and dogs'

#10. 字典

字典性质: 无序,可迭代,可变,可以包含多个数据类型

由键-值对组成

键必须是唯一的, 可以是字符串、数字、元组

值可以是任何类型

字典的键与值:

# 创建一个空字典(两种方法)

empty_dict = {}

empty_dict = dict()

# 创建字典(两种方法)

family = {'dad':'homer', 'mom':'marge', 'size':6}

family = dict(dad='homer', mom='marge', size=6)

family

{'dad': 'homer', 'mom': 'marge', 'size': 6}

# 传入键名,获取字典键值

family['dad']

'homer'

# 返回字典的键-值对数目

len(family)

3

# 检查字典中是否含有某个键名

'mom' in family

True

# 返回键名

family.keys()

dict_keys(['size', 'dad', 'mom'])

# 返回键值

family.values()

dict_values([6, 'homer', 'marge'])

# 返回键值对

family.items()

dict_items([('size', 6), ('dad', 'homer'), ('mom', 'marge')])

修改字典:

# 增加一个键-值

family['cat'] = 'snowball'

family

{'cat': 'snowball', 'dad': 'homer', 'mom': 'marge', 'size': 6}

# 编辑一个已存在的键-值

family['cat'] = 'snowball ii'

family

{'cat': 'snowball ii', 'dad': 'homer', 'mom': 'marge', 'size': 6}

# 删除一个键-值

del family['cat']

family

{'dad': 'homer', 'mom': 'marge', 'size': 6}

# 字典值可以是列表

family['kids'] = ['bart', 'lisa']

family

{'dad': 'homer', 'kids': ['bart', 'lisa'], 'mom': 'marge', 'size': 6}

# 增加多个键-值

family.update({'baby':'maggie', 'grandpa':'abe'})

family

{'baby': 'maggie',

'dad': 'homer',

'grandpa': 'abe',

'kids': ['bart', 'lisa'],

'mom': 'marge',

'size': 6}

获取键值的一个更安全的方法(get):

# 获取字典值,等价于family['mom']

family.get('mom')

'marge'

# 如果字典中不存在,返回一个默认值

family.get('grandma', 'not found')

'not found'

#11. 集合

集合性质: 无序, 可迭代, 可变, 可以包含多个数据类型

集合中元素是唯一的(字符串, 数字, or 元组)

类似于字典,只有键名,没有键值

创建集合:

# 创建空集合

empty_set = set()

# 创建集合

languages = {'python', 'r', 'java'}

# 将列表转化为集合

snakes = set(['cobra', 'viper', 'python'])

集合运算:

# 交集

languages & snakes

{'python'}

# 并集

languages | snakes

{'cobra', 'java', 'python', 'r', 'viper'}

# 差集

languages - snakes

{'java', 'r'}

修改集合 (并不返回集合):

# a增加元素

languages.add('sql')

languages

{'java', 'python', 'r', 'sql'}

# 增加一个已存在的元素

languages.add('r')

languages

{'java', 'python', 'r', 'sql'}

# 移除元素

languages.remove('java')

languages

{'python', 'r', 'sql'}

# 移除所有元素

languages.clear()

languages

set()

从列表中获取唯一元素的排序列表:

sorted(set([9, 0, 2, 1, 0]))

[0, 1, 2, 9]

#12. 函数

定义没有参数、没有返回值的函数:

def print_text():

print('this is text')

# 调用函数

print_text()

this is text

定义含有一个参数、含有一个返回值的函数:

# 定义函数

def square_this(x):

return x**2

# 调用函数

result = square_this(3)

print(result)

9

定义含有两个位置参数(非默认值)、一个关键字参数(默认值)的函数:

def calc(a, b, op='add'):

if op == 'add':

return a + b

elif op == 'sub':

return a - b

else:

print('valid operations are add and sub')

# 调用函数

calc(10, 4, op='add')

14

# 通过参数位置来传入参数值

calc(10, 4, 'add')

14

# "op’关键字参数为默认值

calc(10, 4)

14

calc(10, 4, 'sub')

6

calc(10, 4, 'div')

valid operations are add and sub

如果您尚未编写函数体,请使用pass作为占位符:

def stub():

pass

函数含有两个返回值:

def min_max(nums):

return min(nums), max(nums)

# 多个返回值可以绑定到类型为元组的变量上

nums = [1, 2, 3]

min_max_num = min_max(nums)

min_max_num

(1, 3)

# 多个返回值绑定到多个变量上()通过元组解包的方式

min_num, max_num = min_max(nums)

print(min_num)

print(max_num)

1

3

#13. 匿名(Lambda)函数

主要用于临时定义由另一个函数使用的函数

定义函数:

# 最常见的定义函数的方法——def

def squared(x):

return x**2

# 使用lambda定义函数的方法,等价于def函数定义

squared = lambda x: x**2

依据字符串最后一个元素的顺序,将字符串列表进行排序:

# 使用def函数定义的方法

simpsons = ['homer', 'marge', 'bart']

def last_letter(word):

return word[-1]

sorted(simpsons, key=last_letter)

['marge', 'homer', 'bart']

# 使用lambda函数定义的方法

sorted(simpsons, key=lambda word: word[-1])

['marge', 'homer', 'bart']

#14. For循环与While循环

for 循环:

# for循环

fruits = ['apple', 'orange']

for fruit in fruits:

print(fruit.upper())

APPLE

ORANGE

# 对字典的循环,依次打印字典的键名和键值

family = {'dad':'homer', 'mom':'marge', 'size':6}

for key, value in family.items():

print(key, value)

size 6

dad homer

mom marge

# 对列表的循环,依次打印列表元素的索引值和元素

for index, fruit in enumerate(fruits):

print(index, fruit)

0 apple

1 orange

while 循环:

count = 0

while count < 5:

print('This will print 5 times')

count += 1 # 等价于 'count = count + 1'

This will print 5 times

This will print 5 times

This will print 5 times

This will print 5 times

This will print 5 times

#15. 生成式

列表生成式:

# 通过for循环获得一个列表,该列表的每个元素是原始列表对应元素的三次方

nums = [1, 2, 3, 4, 5]

cubes = []

for num in nums:

cubes.append(num**3)

cubes

[1, 8, 27, 64, 125]

# 使用列表生成式

cubes = [num**3 for num in nums]

cubes

[1, 8, 27, 64, 125]

# 如果只想获得偶数值的列表

# 语法: [expression for variable in iterable if condition]

cubes_of_even = [num**3 for num in nums if num % 2 == 0]

cubes_of_even

[8, 64]

集合生成式:

fruits = ['apple', 'banana', 'cherry']

unique_lengths = {len(fruit) for fruit in fruits}

unique_lengths

{5, 6}

字典生成式:

fruit_lengths = {fruit:len(fruit) for fruit in fruits}

fruit_lengths

{'apple': 5, 'banana': 6, 'cherry': 6}

fruit_indices = {fruit:index for index, fruit in enumerate(fruits)}

fruit_indices

{'apple': 0, 'banana': 1, 'cherry': 2}

#16. FAQ

1. 应该学Python 2 还是 Python 3?

如果你还在问这个问题,选择Python 3。Python 3已经被广泛支持和使用,Python 2的程序可以通过 2to3 转换为Python 3。对初学者来说,Python 2和3区别不大。BigQuant的策略开发语言是Python 3。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值