#!/usr/bin/python
# -*- coding:utf-8 -*-
# @Time : 2019/11/30 14:43
# @Author : Song
# @File : pythonic.py
# 变量交换
# a, b = 1,2
# print(a,b)
# 循环遍历区间元素
# for i in range(1,100,2): # 生成器占用内存小
# # print(i)
# for i in range(6): # 生成器占用内存小
# print(i)
'''
在Python2中,有range和xrange2种写法,xrange是生成器写法,更节省内存。Python3中的range等价于Python2中的xrange。
生成器,只有在使用时才会动态生成,而且只能使用1次,比如range(1000000),Python2中会在内存中生成1百万个元素的列表,而在Python3不会生成列表,而是生成器,占用很小的内存。
'''
# 定义一个生成器, 实例 1
# odd = (num for num in range(10) if num%2==1)
# for num in odd:
# print(num)
# 定义一个生成器, 实例 2
# def fib(max):
# n,a,b = 0,0,1
# while n < max:
# yield b
# a,b = b, a+b
# n= n+1
#
# print(type(fib(8)))
# for num in fib(8):
# print(num)
# 定义一个生成器, 实例 3
# def odd():
# print('step 1')
# yield 1
# print('step 2')
# yield 3
# print('step 3')
# yield 5
#
# gen = odd()
#
# print(next(gen))
# print(next(gen))
# print(next(gen))
# 索引
# num_list = [1,4,9]
# for i, val in enumerate(num_list): # enumerate 枚举
# print(i, '-->', val)
# 字符串拼接
# names = ['Tom', 'jack', 'lucy']
# print(''.join(names))
'''
每次+操作都会产生新字符串,造成内存浪费,而join,整个过程中只会产生一个字符串对象
'''
# 文件打开
# with open('aa.txt') as f:
# data = f.read()
'''
使用with,Python将自动管理文件流的打开与关闭,无需手动操作
'''
# 列表操作
# from collections import deque
# names = deque(['c', 'd', 'e'])
# names.popleft()
# names.appendleft('b')
# names.append('f')
# print(names)
'''
list也可以用pop(0)来删除第一个元素,但是list在内存中是顺序存储的,删除第一个元素,会导致之后的所有元素都会前移,效率很低,插入类似。
开头如果有大量的删除和插入操作,避免使用list
'''
# 解构赋值, 实例 1
# list = ['jack', 18, 'man']
# name, age, sex = list
# print(name, age, sex)
# 解构赋值, 实例 2
# num_list = [100, 19, 20, 98]
# first, *left_num_list, last = num_list
# print(first, *left_num_list, last)
# 解构赋值, 实例 3
# stu = [['Tom', (98, 96, 100)], ['Jack', (12, 13, 33)]]
# for name, (first, second, third) in stu:
# print(name, first, second, third)
# 解构赋值, 实例 4
# stu = {
# 'name': 'Tom',
# 'agw': 18
# }
# for k,v in stu.items():
# print(k, '-->', v)
# 推导式
# odd = [i for i in range(1, 100) if i % 2 == 1] # 生成1-100的奇数
# print(odd)
# 集合a,b 分别去一个数,找出和大于100的所有组合
a_set = (100, 2, 30, 4)
b_set = (5, 600, 7, 80)
result = [(x, y) for x in a_set for y in b_set if x+y > 100]
print(result)
写完这篇文章,小编逛了下淘宝(天冷了骑着小毛驴太冷了,的买个帽子戴上),顺便分享一个淘宝购物返利的一个小方法,省点小钱,毕竟咱们程序员拿生命换来的钱,真心不容易!!!
第一步: 大家用微信先加一下这个微信妹子(机器人哈)为好友:wxid_wfmh8h6v27lj22
第二步: 打开淘宝,在你想要购买的宝贝上把宝贝链接分享给淘小鸭
第三步: 点击上图去粘贴 给淘小鸭,她会回复你优惠券和返利金额
第四步:按照提示复制,打开淘宝,领取优惠券后直接下单购买即可
第五步: 待确认收货后,她就会提示你有返现。此宝贝返现2.96元,你发“提现”给她,就会收到微信红包啦。此处是我之前的几个订单的返利。
哈哈,会了吧,咱们做IT的相信一看就会明白啦。赶紧用起来,省钱去!!!