美文网首页
python 例题

python 例题

作者: 心疼你萌萌哒 | 来源:发表于2018-06-07 10:40 被阅读0次

元组 将字符串转化成元组

# s = "car"
# s1 = tuple(s)
# print(type(s1))
#result :
#tuple

人不变心变 就是元组里的列表ID不变 元组大框里面的ID变

# l1 = [1, 2, 3, ['a', 'v']]
# l2 = tuple(l1)
# l2[3][1] = 'o'
# print (l2)
# print(id(l2[3]))
# print(id(l1[3]))
#
# print(id(l2))
# print(id(l1))
#  result:
# 140104303701640
# 140104303701640
# 140104303350712
# 140104302816712

多变量一起赋值 并交换值 (注意赋值的时候看右边的)

a,b = 1,2
a,b = b,a
print(a)
print(b)
#result
2
1
# a = [('a','1'),('b','2')]
# b = ['a1','b2']
# a1 = dict(a)
# b2 = dict(b)
# print(a1)
# print(b2)
#
# print(a1 == b2)
# print(a1 is b2)
# result:
# {'a': '1', 'b': '2'}
# {'a': '1', 'b': '2'}
# True
# False

并行迭代 如果列表长度不一样选最短的

# for i,x in zip (['a','b'],[1,2]):
#     print(i,'---',x)
# result:
# a --- 1
# b --- 2
for i,x in zip (['a','b','c'],[1,2]):
    print(i,'---',x)
# result:
# a --- 1
# b --- 2

两个列表-》迭代-》列表-》字典

a = ['xingqiyi','xingqier']
b = ['1','2']
print (zip(a,b))
c = list(zip(a,b))
print(c)
d = dict(c)
print (d)

result:
<zip object at 0x7fb35825dac8>
[('xingqiyi', '1'), ('xingqier', '2')]
{'xingqiyi': '1', 'xingqier': '2'}

判断对象是否能hash 列表不能hash

# print(hash(1))
# print(hash('asdf'))
# print(hash((1,2)))
# print(hash([1,3]))
# 
# result:
# 1
# -96696562774008768
# 3713081631934410656
# TypeError: unhashable type: 'list'

get方法

info_dict = {"name":"xiaoguo","age": "18"}
1.####na = info_dict["name"]
# print(na)
# result :
# xiaoguo

2.####age = info_dict.get('aaa','gg')
# print (age)
# age1 = info_dict.get('age')
# print (age1)
# result:
# gg
# 18

3.
info_dict = {"name":"xiaoguo","age": "18"}
keys = info_dict.keys()   或 values= info_dict.values()
print (keys)                               print(list(values))
print (list(keys))
result:
dict_keys(['name', 'age'])
['name', 'age']
4.
info_dict = {"name":"xiaoguo","age": "18"}
items = info_dict.items()
print(list(items))
result:
[('name', 'xiaoguo'), ('age', '18')]
5.
info_dict = {"name":"xiaoguo","age": "18"}

for key in info_dict.keys():
    print(key)

for value in info_dict.values():
    print(value)
# result:
# name
# age
#
# xiaoguo
# 18
for key,value in info_dict.items():
    print(key,'---',value)
# result:
# name --- xiaoguo
# age --- 18

定义一个字典 并将info_dict的字典加入到新的字典里 ( 定义新字典的方式:d = {} 往字典里添加元素d['a'] =1 d[''b]=2)

info_dict = {"name":"xiaoguo","age": "18"}
info_new_dict = {}
for key,val in info_dict.items():
    print (key,'--',val)
    info_new_dict[key]=val
    print(info_new_dict)
result:
name -- xiaoguo
{'name': 'xiaoguo'}
age -- 18
{'name': 'xiaoguo', 'age': '18'}

setdefault的应用 列表有append的方法

data=[('animal','xiaoguo'),('zhiwu','hua')]
dice={}
for (key,val) in data:
    dice.setdefault(key,[]).append(val)
    print(dice)
{'animal': ['xiaoguo']}
{'animal': ['xiaoguo'], 'zhiwu': ['hua']}
from collections import defaultdict                                      
data=[('animal','xiaoguo'),('zhiwu','hua')]                              
dd=defaultdict(list)                                                     
print(dd)                                                                
for (key, value) in data:                                                
    print(dd[key])                                                       
    dd[key].append(value)                                                
    print(dd)                                                            
   result:                                                               
 defaultdict(<class 'list'>, {})                                         
 []                                                                      
 defaultdict(<class 'list'>, {'animal': ['xiaoguo']})                    
 []                                                                      
 defaultdict(<class 'list'>, {'animal': ['xiaoguo'], 'zhiwu': ['hua']})  

高效设置set集合和转换

s1 = set()
print(s1) 
result:
set()
添加元素
In [11]: s2 = {12,3,4,5,6,}

In [12]: s2.add('n')

In [13]: s2
Out[13]: {12, 3, 4, 5, 6, 'n'}
删除元素In 
[15]: s2.remove('n')
In [16]: s2
Out[16]: {4, 5, 6, 12}
随机删一个In 
[14]: s2.pop()
Out[14]: 3

多级菜单 enumerate

data=[['zhujiinfo','func','aaa'],['mem','func','bbb']]
dic={}
for (i,items) in enumerate(data,1):
    print(i,items)
    dic.update({i:{'title':items[0],'func':items[1],'next_menu':items[2]}})
print(dic)
print(dic.get(1).get('func'))
result:
1 ['zhujiinfo', 'func', 'aaa']
2 ['mem', 'func', 'bbb']
{1: {'title': 'zhujiinfo', 'func': 'func', 'next_menu': 'aaa'}, 2: {'title': 'mem', 'func': 'func', 'next_menu': 'bbb'}}
func

动态参数 *args

#position args
# def xiaoguo(*a):
#
#     print(a)
#
# li = [1,2,3,4]
# xiaoguo(li)
# xiaoguo(*li)
result:
([1, 2, 3, 4],)
(1, 2, 3, 4)

#关键字弄成字典

# def print_keyargs(**kwargs):
#     print(kwargs)
# print_keyargs(ip=22,host_name='dbserver2')
result :
{'ip': 22, 'host_name': 'dbserver2'}

注释 x=a 上方'''回车

# def foo(a,b):
#     '''
#     :param a:
#     :param b:
#     :return:
#     '''
#     x=a
# for i in range(10):
#     if i < 3:
#         inp = int(input("请输入数字>>:").strip())
#         if inp == 18:
#             print("你赢了")
#             break
#         elif inp > 18:
#             print("高了")
#         else:
#             print("低了")
#     else:
# #       inp1 = int(input("是否继续(Y/N)").strip())
#         inp1 = input("是否继续(Y/N)").strip()
#         if inp1 == 'Y':
#             for a in range(10):
#                 if a < 3:
#                     inp2 = int(input("请继续输入>>:").strip())
#                     if inp2 == 18:
#                         print("你赢了")
#                         break
#                     elif inp2 > 18:
#                         print("高了")
#                     else:
#                         print("低了")
#         if inp1 == 'N':
#             print("Game over")
#             break

sys模块:用于提供对python解释权的系统环境相关操作

import subprocess
# ret = subprocess.getoutput('ls /')
# print(ret.split('\n')[1:])
# result:['boot', 'dev', 'dirname', 'etc', 'home', 'lib', 'lib64', 'media', 'mnt', 'opt', 'proc', 'root', 'run', 'sbin', 'srv', 'sys', 'tmp', 'usr', 'var']

# print(subprocess.getstatusoutput('date'))
#======================================================
import subprocess
status,ret = subprocess.getstatusoutput('date')
print(type(status))
if not status:
    print(ret)
#result:
# <class 'int'>
# Mon Jun 11 17:42:45 CST 2018

匿名函数

print((lambda x,y: x if x> y else y)(101,102))

相关文章

  • python例题

    for循环、if 、乘方 、continue 、除法 输入输出、while循环 日期操作 批量打印 函数定义,递...

  • python 例题

    元组 将字符串转化成元组 人不变心变 就是元组里的列表ID不变 元组大框里面的ID变 多变量一起赋值 并交换值 (...

  • Python例题

    1、从键盘输入10个学生的成绩并存储在列表中,求成绩最高者、最低者的序号和成绩。 2、编写程序,生成包含20个元素...

  • Python例题27

    题目:利用递归函数调用方式,将所输入的5个字符,以相反顺序打印出来。 程序分析:无。 程序源代码: 实例(Pyth...

  • Python例题24

    题目:有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前20项之和。 程序分...

  • Python例题25

    题目:求1+2!+3!+...+20!的和。 程序分析:此程序只是把累加变成了累乘。 方法一 #!/usr/bin...

  • Python例题23

    题目:打印出如下图案(菱形): * *** ***** ******* ***** *** * 程序分...

  • Python例题19

    题目:一个数如果恰好等于它的因子之和,这个数就称为"完数"。例如6=1+2+3.编程找出1000以内的所有完数。 ...

  • Python例题13

    题目:打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个"...

  • python例题14

    题目:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。 程序分析:对n进行分解质因数,应先找到...

网友评论

      本文标题:python 例题

      本文链接:https://www.haomeiwen.com/subject/bugwsftx.html