python 草稿笔记

# coding=utf-8

# python 草稿笔记
# 字符串笔记
# str = '123456789'

# print(str)  # 输出字符串
# print(str[0:-1])  # 输出第一个到倒数第二个的所有字符
# print(str[1:5:2])          # 输出从第二个开始到第五个且每隔一个的字符(步长为2)

# print('hello\nrunoob\n')      # 使用反斜杠(\)+n转义特殊字符
# print(r'hello\nrunoob')     # 在字符串前面添加一个 r,表示原始字符串,不会发生转义

# 同一行用; 实现多个命令
# import sys; x = 'runoob'; sys.stdout.write(x)

# !/usr/bin/python3
# x = "a"
# y = "b"
# # 换行输出
# print(x)
# print(y)
#
# print('---------')
# 不换行输出
# print(x, end=" ")
# # print(y, end=" ")
#
# # 导入 sys 模块
# import sys
#
# print('================Python import mode==========================')
# print ('命令行参数为:')
# for i in sys.argv:
#     print (i)
#
#
# # 命令行参数为:
# # C:/Users/p50981/Desktop/xxx/103/test000.py
# # print ('\n python 路径为',sys.path)
# # ('\n python \xe8\xb7\xaf\xe5\xbe\x84\xe4\xb8\xba', ['C:\\Users\\p50981\\Desktop\\xxx\\103', 'C:\\Users\\p50981\\Desktop\\xxx', 'C:\\Program Files\\JetBrains\\PyCharm 2020.2.5\\plugins\\python\\helpers\\pycharm_display', 'C:\\Windows\\SYSTEM32\\python27.zip', 'C:\\Python27\\DLLs', 'C:\\Python27\\lib', 'C:\\Python27\\lib\\plat-win', 'C:\\Python27\\lib\\lib-tk', 'C:\\Python27', 'C:\\Python27\\lib\\site-packages', 'C:\\Program Files\\JetBrains\\PyCharm 2020.2.5\\plugins\\python\\helpers\\pycharm_matplotlib_backend']
#
# # Python允许你同时为多个变量赋值。例如:
# # a = b = c = 1
# # 同
# # a, b, c = 1, 2, "runoob"
#
#
# #  isinstance 和 type 的区别在于:
# #     type()不会认为子类是一种父类类型。
# #     isinstance()会认为子类是一种父类类型。
#
# class A:
#     pass
# class B(A):
#     pass
# if isinstance(A(), A):
#     print 'True'
# else:
#     print 'false'
# if type(A()) == A:
#     print 'true'
# else:
#     print 'false'
# if isinstance(B(), A):
#     print 'true'
# else:
#     print 'false'
# if type(B()) == A:
#     print 'true'
# else:
#     print 'false'
# True
# false
# true
# false
# Python3 中,bool 是 int 的子类,True 和 False 可以和数字相加, True==1、False==0 会返回 True,
# 但可以通过 is 来判断类型。
# 在 Python2 中是没有布尔型的,它用数字 0 表示 False,用 1 表示 True。
# word = 'python'
# print(word[0], word[5])
# # 与 C 字符串不同的是,Python 字符串不能被改变。向一个索引位置赋值,比如word[0] = 'm'会导致错误。
# if 'n' in  word:
#     print 'true'

# 列表笔记
# input = 'abcdefg'
# # 通过空格将字符串分隔符,把各个单词分隔为列表
# inputWords = input.split(" ")
#
# # 翻转字符串
# # 假设列表 list = [1,2,3,4],
# # list[0]=1, list[1]=2 ,而 -1 表示最后一个元素 list[-1]=4 ( 与 list[3]=4 一样)
# # inputWords[-1::-1] 有三个参数
# # 第一个参数 -1 表示最后一个元素
# # 第二个参数为空,表示移动到列表末尾
# # 第三个参数为步长,-1 表示逆向
# inputWords = inputWords[-1::-1]
#
# # 重新组合字符串
# output = ' '.join(inputWords)
# print output

# 元组笔记
#  构造包含 0 个或 1 个元素的元组比较特殊,所以有一些额外的语法规则:

# tup1 = ()    # 空元组
# tup2 = (20,) # 一个元素,需要在元素后添加逗号
# print tup1,tup2
# 集合笔记
# sites = {'Google', 'Taobao', 'Runoob', 'Facebook', 'Zhihu', 'Baidu'}
#
# print(sites)   # 输出集合,重复的元素被自动去掉
#
# # 成员测试
# if 'Runoob' in sites :
#     print('Runoob 在集合中')
# else :
#     print('Runoob 不在集合中')
#
#
# # set可以进行集合运算
# a = set('abracadabra')
# b = set('alacazam')
#
# print(a)
#
# print(a - b)     # a 和 b 的差集
#
# print(a | b)     # a 和 b 的并集
#
# print(a & b)     # a 和 b 的交集
#
# print(a ^ b)     # a 和 b 中不同时存在的元素

# set(['Baidu', 'Google', 'Runoob', 'Taobao', 'Facebook', 'Zhihu'])
# Runoob 在集合中
# set(['a', 'r', 'b', 'c', 'd'])
# set(['r', 'b', 'd'])
# set(['a', 'c', 'b', 'd', 'm', 'l', 'r', 'z'])
# set(['a', 'c'])
# set(['b', 'd', 'm', 'l', 'r', 'z'])

# 字典笔记
# dict = {}
# dict['one'] = "1 - 菜鸟教程"
# dict[2]     = "2 - 菜鸟工具"
#
# tinydict = {'name': 'runoob','code':1, 'site': 'www.runoob.com'}
#
#
# print (dict['one'])       # 输出键为 'one' 的值
# print (dict[2])           # 输出键为 2 的值
# print (tinydict)          # 输出完整的字典
# print (tinydict.keys())   # 输出所有键
# print (tinydict.values()) # 输出所有值

# x = {x: x**2 for x in (2, 4, 6)}
# print x
# {2: 4, 4: 16, 6: 36}


# 列表推导式
# [表达式 for 变量 in 列表 if 条件]
# [out_exp_res for out_exp in input_list if condition]
#
# out_exp_res:列表生成元素表达式,可以是有返回值的函数。
# for out_exp in input_list:迭代 input_list 将 out_exp 传入到 out_exp_res 表达式中。
# if condition:条件语句,可以过滤列表中不符合条件的值

# names = ['Bob','Tom','alice','Jerry','Wendy','Smith']
# # print names[0].lower()
# name_new = [i.lower() for i in names if len(i)>3]
# print name_new
# lists = [i for i in range(30) if i % 5== 1]
# print lists
# new_names = [name.upper()for name in names if len(name)>3]
# print(new_names)

# 字典推导式
# { key_expr: value_expr for value in collection if condition }

# 使用字符串及其长度创建字典:
# listdemo = ['Google','Runoob', 'Tao']
# # 将列表中各字符串值为键,各字符串的长度为值,组成键值对
# newdict = {key:len(key) for key in listdemo if len(key)>5}
# print newdict

# 集合推导式
# 集合推导式基本格式:
# { expression for item in Sequence if conditional }
#
# setnew = {i**3 for i in (1,5,6)}
# print setnew

# 元组推导式(生成器表达式)
# 元组推导式基本格式:
# (expression for item in Sequence if conditional )
# 元组推导式和列表推导式的用法也完全相同,只是元组推导式是用 () 圆括号将各部分括起来,而列表推导式用的是中括号 [],另外元组推导式返回的结果是一个生成器对象。

# a = (x for x in range(1,10) if x <5)
# print a
# # <generator object <genexpr> at 0x0000000002BF7678>  生成器对象
# print tuple(a)
# (1, 2, 3, 4)

# coding=utf-8
# 字符串、
a = 'adfasd'
print a.capitalize(),a.center(5,'*'),a.count('a',0,5)
print a.decode(encoding='utf-8'),a.encode(encoding='utf-8')
print a.endswith('d'),a.find('s',0,5),a.index('a',0,3)
print a.isalnum(),a.isalpha(),a.isdigit(),a.islower(),a.isupper()
print a.islower(),a.join(''),a.strip().replace(' ','',2).split()
#
#
print("Hello \t World!")
#
# # 列表 extend 和 append的区别
list1 = ['abc']
list2 = list(range(5))  # 创建 0-4 的列表
list1.append(list2)
print list1
# ['abc', [0, 1, 2, 3, 4]]
list1.extend(list2)
print list1
# ['abc', 0, 1, 2, 3, 4]

# list = ['baab']
#
# list.append('a'),list.count('a'),list.index('a'),list.insert(2,'a')
# list.pop(1),list.remove('a'),list.reverse(),list.sort()

# 集合  {} set()
s={'aaa'}
s.add('a')
s.update({1,6})
s.remove('a')
s.discard('a')
s.pop()
len(s)
s.clear()
s.difference({'a'},{'a','b'})
s.intersection({'a'},{'a','b'})

# 迭代器
# list = [1,2,3,5]
# it = iter(list)
# print next(it)
# # 生成器
# def fibonacci(n): # 生成器函数 - 斐波那契
#     a, b, counter = 0, 1, 0
#     while True:
#         if (counter > n):
#             return
#         yield a
#         a, b = b, a + b
#         counter += 1
# f = fibonacci(10) # f 是一个迭代器,由生成器返回生成
# print next(f)
# print next(f)

# 不定长参数 * 元组
# 可写函数说明
# def printinfo(arg1, *vartuple):
#     "打印任何传入的参数"
#     print ("输出: ")
#     print (arg1)
#     for var in vartuple:
#         print (var)
#     return
#
#
# # 调用printinfo 函数
# printinfo(10)
# printinfo(70, 60, 50)


# 可写函数说明 **字典类型
# def printinfo(arg1, **vardict):
#     "打印任何传入的参数"
#     print ("输出: ")
#     print (arg1)
#     print (vardict)
#
#
# # 调用printinfo 函数
# printinfo(1, a=2, b=3)
# # {'a': 2, 'b': 3}

# 声明函数时,参数中星号 * 可以单独出现,例如:
# def f(a,b,c):
#     return a+b+c
# f(1,2,c=3) # 正常

# 匿名函数
# x = lambda a : a + 10
# print(x(5))
# # 可写函数说明
# sum = lambda arg1, arg2: arg1 + arg2
# # 调用sum函数
# print (sum(10, 20))
def myfunc(n):
    return lambda a: a * n
mydoubler = myfunc(2)
mytripler = myfunc(3)
print(mydoubler(11))
print(mytripler(11))

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值