#!/bin/env python
#-*- coding:utf8 -*-
#学python的记录
#练习一天~
# adict = dict([('name','bob'),('age',25)])
# print(len(adict))
# print(adict)
# a = hash(100) #判断给定的数据是不是不可变的,不可变数据才能作为key
# print(a)
# a = adict.keys() #取出所有字典的key
# print(a)
# a = adict.values() #取出字典所有的value
# print(a)
# a = adict.items() #取出key:value对
# print(a)
# #get方法常用很重要
# print(adict.get('name')) #取出字典中name对应的value,如果没有则返回None
# print(adict.get('qq')) #None
# print(adict.get('qq','not found')) #没有qq,返回指定内容:not found
# function(){ //外汇返佣:http://www.fx61.com
# print(adict.get('age','not found'))
# a = adict.update({'phone': '123456'}) #返回值为None
# print(a)
# b = adict['phone'] = '123456' #存在则更新 不存在就添加 并且可赋值
# print(b)
# #集合相当于是无值(value)的字典,所以也用{}表示
# myset = set('hello')
# print(len(myset))
# for ch in myset:
# print(ch)
#
# aset = set('abc')
# bset = set('cde')
# aset & bset #交集
# aset.intersection(bset) #交集
# aset | bset #并集
# aset.union(bset) #并集
# aset - bset #差补
# aset.difference(bset) #差补
# aset.add('new')
# print(aset)
# aset.update(['aaa','bbb'])
# print(aset)
# aset.remove('bbb')
# cset = set('abcde')
# dset = set('bcd')
# cset.issuperset(dset) #cset是dset的超集么?
# dset.issubset(cset) #dset是cset的子集么?
# #cp /etc/passwd .
# #cp /etc/passwd mima
# #vim mima -> 修改,与passwd有些区别
#
# with open('passwd')as fobj:
# aset = set(fobj)
#
# with open('mima') as fobj:
# bset = set(fobj)
#
# with open('diff.txt','w')as fobj:
# fobj.writelines(bset - aset)
#
# import getpass
#
# userdb = {}
#
# def register():
# username = input('username: ')
# if username in userdb:
# print('%s already exists.'% username)
# else:
# password = input('password: ')
# userdb[username]=password
#
# def login():
# username = input('username: ')
# password = getpass.getpass('password: ').strip()
# if userdb.get(username) != password:
# print('login failed')
# else:
# print('login successful')
#
#
# def show_menu():
# cmds = {'0':register,'1':login}
# prompt = """(0)register
# (1)login
# (2)exit
# Please input your choice(0/1/2): """
#
#
# while True:
# choice = input(prompt).strip()[0]
# if choice not in '012':
# print('Invalid input,Try again.')
# continue
#
# if choice == '2':
# break
#
#
# cmds[choice]()
#
# if __name__ == '__main__':
# show_menu()
#
# import time
#
# result = 0
# start = time.time() #返回运算前时间戳
# for i in range(100000000):
# result +=i
# end = time.time() #返回运算后时间戳
# print(result)
# print(end-start)
# print('hello world!')
#
# if 3 > 0:
# print('ok')
# print('yes')
#
# x = 3; y = 4 #不推荐 可读性差
# print(x+y)
#
# print('hello world!')
# print('hello','world!') #逗号自动添加默认的分隔符:空格
# print('hello' + 'world') #+表示字符拼接
# print('hello','world',sep='***') #sep指定分隔符
# print('#' * 50) #*表示重复*50遍
# print('how are you?',end='') #取消print的默认打空格机构
# print(5/2)
# print(5//2)
# print(5%2)
# print(5**3)
# print(5>3)
# print(3>5)
# print(20>10>5)
# print(20>10 and 10 > 5)
# print(not 20 > 10)
#
# number = input('请输入数字; ') #input用于获取键盘输入
# print(number)
# print(type(number)) #input获得的数据是字符型
#
# print(number + 10) #报错 不能把字符和数字做运算
# print(int(number) + 10) #int可将字符串10转换成数字10
# print(number + str(10)) #str将10转换为字符串后实现字符串拼接
#
# username = input('username: ')
# print('welcome',username) #print各项间默认以空格作为分隔符
# print('welcome'+username) #助意引号内最后的空格
#
# sentence = 'tom\'s pet is a cat'
# sentence2 = "tom's pet is a act"
# sentence3 = 'tom said:\"hello world!\"'
# sentence4 = 'tom said"hello world"'
# #三个连续的单引号或双引号,可以保存输入格式,允许输入多行字符串
# words = """
# hello
# world
# abcd"""
# print(words)
#
# py_str = 'python'
# len(py_str) #取长度
# py_str[0] #取第一个字符串
# 'python'[0]
# py_str[-1] #最后一个字符
# #py_str[6] #错误,下表超出范围
# py_str[2:4] #切片 起始下标包含,结束下标不包含
# py_str[2:] #从下标为2的字符取到结尾
# py_str[:2] #从开头取到下标是2之前的字符
# py_str[:] #取全部
# #步长值为2,默认是1
# py_str[::2]
# py_str[1::2] #去除yhn
# py_str[::-1] #步长为负,表示自右向左取
#
# py_str + 'is good' #简单的拼接到一起
# py_str * 3 #把字符串重复三遍
# print('t' in py_str) #True
# print('th' in py_str)
# print('to' in py_str)
# print('to' not in py_str)
#
# alist = [10,20,30,'bob','alice',[1,2,3]]
# print(len(alist))
# alist[-1] #取出最后一项
# alist[-1][-1] #因为最后一项是列表,列表还可以继续取吓标
# [1,2,3][-1] #[1,2,3]是列表,[-1]表示列表最后一项
# alist[-2][2] #列表倒数第二项是字符串,在取出来字符下标为2的字符
# alist[3:5] #['bob','alice']
# print(10 in alist)
# print('o' in list)
# print(100 not in alist)
# alist[-1] = 100 #修改最后一项的值
# alist.append(200) #向列表中追加一项
# atuple = (10,20,30,'bob','alice',[1,2,3])
# print(len(atuple))
# print(10 in atuple)
# print(atuple[2])
# print(atuple[3:5])
# #atuple[-1]=100 #错误 元组是个不可改变的
# #字典是key-value键值对形式的,没有顺序,通过键取出值
# adict = {'name':'bob','age': 21}
# print(len(adict))
# print('bob' in adict)
# print('name' in adict)
# a = adict['email']= '[email protected]'
# print(a)
# adict['age']=25 #字典中已有key,修改对应的value
#
# if 3 > 0:
# print('yes')
# print('ok')
#
# if 10 in [10,20,30]:
# print('ok')
#
# if -0.0:
# print('yes') #任何值为0的数字都是
#
# if [1,2];
# print('yes') #非空对象都是True
#
# if '':
# print('yes') #空格字符也是字符,条件为True
#
# a = 10
# b = 20
#
# if a<b:
# smaller=a
# else:
# smaller=b
#
# print(smaller)
#
# s = a if a < b else b #和上面的if-else语句等价
#
# print(s)
#
#
# import getpass
#
# username = input('username: ')
# #getpass模块中,有一个方法也叫getpass
# password = getpass.getpass('password: ')
#
# if username == 'bob' and password == '123456':
# print('Login successful')
# else:
# print('Login incorrect')
#
# import random
#
# num = _random.randint(1,10) #随机生成1-10\之间的数字
# answer = int(input('guess a number: ')) #将用户输入的数字符转乘整数
# if answer > num:
# print('猜大了')
# elif answer > num:
# print('猜小了')
# else:
# print('猜对了')
#
# print('the number: ',num)
#
# score = int(input('分数: '))
#
# if score >=90:
# print('优秀')
# elif score >= 80:
# print('好')
# elif score >= 70:
# print('良好')
# elif score >= 60:
# print('及格')
# else:
# print('你要努力了')
# score = int(input('得分: '))
#
# if score >= 60 and score <70:
# print('及格')
# elif 7 <= score<80:
# print('良好')
# elif 80 <= score <90:
# print('好')
# elif score >= 90:
# print('优秀')
# else:
# print('你要努力了')
# import randdom
#
# all_choice = ['石头','剪刀','布']
# computer = randdom.chocie(all_choice)
# player = input('请出拳头: ')
#
# #print('Your choice:',player,"Computer's choice",computer)
# print("'Your choice: %s,Computer's choice: %s"% (player,computer))
# if player == '石头':
# if computer == '石头':
# print('平局')
# elif computer == '剪刀':
# print('You WIN!!!')
# else:
# print('You LOSE!!!')
# elif player == '剪刀':
# if computer == '石头':
# print('You LOSE!!!')
# elif computer == '剪刀':
# print('平局')
# else:
# print('You WIN!!!')
# else:
# if computer == '石头':
# print('You WIN!!!')
# elif computer == '剪刀':
# print('You LOSE!!!')
# else:
# print('平局')
# import random
#
# all_choices = ['石头','剪刀','布']
# win_list = [['石头','剪刀'],['剪刀','布'],['布','石头']]
# prompt = """(0)石头
# (1)剪刀
# (2)布
# 请选择(0/1/2: """
# computer = random.choice(all_choice)
# ind = int(input(prompt))
# player = all_choices[ind]
#
# print("'Your choice: %s,Computer's chocie:%s"% (player,computer))
# if player == computer:
# print('\033[31;1m平局\033[0m')
# elif [player,computer]in win_list:
# print('\033[31;1mYou WIN!!!\033[0m')
# else:
# print('\033[31;1mYou LOSE!!!\033[0m')
# import random
#
# num = random.randint(1,10)
# couter = 0
#
# while couter <5:
# answer = int(input('guess the number:'))
# if answer > num:
# print('猜大了')
# elif answer < num:
# print('猜笑了')
# else:
# print('猜对了')
# break
# couter +=1
# else: #循环被break就不执行了,没有被break才执行
# print('the number is : ',num)
# sum100 = 0
# counter = 1
#
# while counter < 101:
# sum100 += counter
# counter +=1
#
# print(sum100)
# while True:
# yn = input('Continue(y/n): ')
# if yn in ['n','N']:
# break
# print('running...')
#
# sum100 = 0
# counter = 0
#
# while counter < 100:
# counter +=1
# #if conuter %2:
# if counter %2 ==1:
# continue
# sum100 += counter
#
# print(sum100)
#
# astr = 'hello'
# alist = [10,20,30]
# atuple = ('bob','tom','alice')
# adict = {'name': 'john','age':23}
#
# for ch in astr:
# print(ch)
#
# for i in alist:
# print(i)
#
# for name in atuple:
# print(name)
#
# for key in adict:
# print('%s:%s'% (key,adict[key]))
#
#range(10) #[0,1,2,3,4,5,6,7,8,9]
#>>>list(range(10))
#range(6,11) #[6,7,8,9,10]
#range(1 ,10, 2) #随机的基数列表1 3 5 7 9
#range(10 ,0 ,-1) #倒着随机10 9 8 7 6 5 4 3 2 1 由于0为最后一项不打印
# sum100 = 0
#
# for i in range(1,101):
# sum100 += i
#
# print(sum100)
# fib = [0,1]
#
# for i in range(8):
# fib.append(fib[-1] + fib[-2])
#
# print(fib)
#
# for i in range(1,10):
# for i in range(1,i + 1):
# print('%s*%s=%s'% (j,i,j*i),end='')
# print()
#
# #i =1 ->j:[1]
# #i =2 ->j:[1,2]
# #i =3 ->j:[1,2,3]
#
# n = int(input('number: '))
#
# for i in range(1,n + 1):
# for j in range(1, i + 1):
# print('%s*%s=%s'% (j,i.i*j),end="")
# print()
# #10+5的结果放到列表中
# [10+5]
# #10+5这个表达式计算10次
# print([10+5for i in range(10)])
# #10+i的i来自循环
# print([10+i for i in range(10)])
# print([10 + i for i in range(1,11)])
# #通过if过滤,满足if条件的才参与10+i的运算
# print([10+i for i in range(1,11)if i % 2 == 1])
# print([10+i for i in range(1,11)if i %2])
# #生成ip地址列表
#print(['192.168.1.%s'% i for i in range(1,255)])
# import random
#
# all_choices = ['石头','剪刀','布']
# win_list = [['石头','剪刀'],['剪刀','布'],['布','石头']]
# prompt = """(0)石头
# (1)剪刀
# (2)布
# 请选择(0/1/2): """
# cwin = 0
# pwin = 0
#
# while cwin < 2 and pwin <2 :
# computer = random.choice(all_choice)
# ind = int(input(prompt))
# player = all_choices[ind]
#
# print("Your choice: %s,Computer's choice: %s"% (player,computer))
# if player == computer:
# print('\033;1m平局\033[0m')
# elif [player,computer] in win_list:
# pwin += 1
# print('\033[31;1m You WIN!!!\033[0m')
# else:
# cwin += 1
# print('\033[31;1mYou LOSE!!!\033[0m')
# #文件操作的三个步骤:打开 读写 关闭
# #cp /etc/passwd /tmp
# f = open('/tmp/passwd') #默认以r的方式打开纯文本文件
# data = f.read() #read()把所有内容读取出来
# print(data)
# data =f.read() #随着读写的进行,文件指针向后移动.
# #因为第一个f.read()已经把文件指针移动到结尾了,所以再读就没有数据了
# #所以data时空字符串
# f.close()
#
# f= open('/tmp/passwd')
# data=f.read(4) #读4字节
# print(f.readline()) #读到换行符\n结束
# f.readlines() #把每一行数据读出来放到列表中
# f.close()
# #########################################
# f = open('/tmp/passwd')
# for line in f:
# print(line,end='')
# f.close()
#
# ###############################################
# f =open('图片地址','rb') #打开非文本文件要加参数b
# f.read(4096)
# f.close()
#
# #########################################
# f = open('/tmp/myfile','w') #'w'打开文件,如果文件不存在则创建
# f.write('hello world!\n')
# f.flush() #立即将缓存中的数据同步到磁盘
# f.writelines(['2nd line.\n','new line.]n'])
# f.close() #关闭文件的时候将数据保存到磁盘
#
# ###############################
# with open('/tmp/passwd')as f:
# print(f.readline())
#
# ##########################
# f = open('/tmp/passwd')
# f.tell() #查看文件指针的位置
# f.readline()
# f.tell()
# f.seek(0,0) #第一个数字是偏移量,第二个数字是相对位置
# #相对位置0表示开头 1表示当前 2表示结尾
#
# f.tell() #查看当前的位置
# f.close()
# file1 = open('/bin/ls','rb')
# file2 = open('/root/ls','wb')
#
# data = file1.read()
# file2.write(data)
#
# file1.close()
# file2.close()
# src_fname='/bin/ls'
# dst_fname='/root/ls'
#
# src_fobj=open(src_fname,'rb')
# dst_fobj = open(dst_fname,'wb')
#
# while True:
# data = src_fobj.read(4096)
# if not data:
# break
# dst_fobj.write(data)
#
# src_fobj.close()
# dst_fobj.close()
#
# import sys
#
# print(sys.argv) #sys.argv是sys模块里的argv列表
#
#python position_args.py
#python positon_args.py
#python position_args.py
# def gen_fib(l):
# fib = [0,1]
#
# for i in range(l -len(fib)):
# fib.append(fib[-1] + fib[-2])
#
# return fib #返回列表,不返回变量fib
#
# a = gen_fib(10)
# print(a)
# print('-'*50)
# n = int(input("length: "))
# print(gen_fib(n))
# import sys
#
# def copy(src_fname,dst_fname):
# src_fobj = open(src_fname,'rb')
# dst_fobj = open(dst_fname,'wb')
#
# while True:
# data = src_fobj.read(4096)
# if not data:
# break
# dst_fobj.write(data)
#
# src_fobj.close()
# dst_fobj.close()
#
# copy(sys.argv[1],sys.argv[2])
# #执行方式
# #cp_func.py /etc/hosts /tmp/zhuji.txt
# def mtable(n):
# for i in range(1,n+1):
# for j in range(1,i + 1):
# print('%s*%s=%s'% (j,i,i*j),end='')
# print()
#
# mtable(6)
# mtable(9)
# hi ='hello world!'
#
# def pstar(n=50):
# print('*'*n)
#
# if __name__ == '__main__':
# pstar()
# pstar(30)
#
# print(pstar())
# print(hi)
#
# from random import choice
# import string
#
# all_chs = string.ascii_letters + string.digits
#
# def gen_pass(n=8):
# result = ''
#
# for i in range(n):
# ch = choice(all_chs)
# result +=ch
#
# return result
#
# if __name__ == '__main__':
# print(gen_pass())
# print(gen_pass(4))
# print(gen_pass(10))
# alist = [10,'john']
# #list(enumerate(alist)) #[(0,10),(1,'john)] #取出key和value以列表方式
# #a,b = 0,10 #a->0 ->10
# print(len(alist))
# for ind in range(len(alist)):
# print('%s:%s'% (ind,alist[ind]))
#
# for item in enumerate(alist):
# print('%s: %s'% (item[0],item[1]))
#
# for ind,val in enumerate(alist):
# print('%s: %s'% (ind,val))
# atuple = (96,97,40,75,58,34,69,26,66,90)
# print(sorted(atuple)) #分类
# print(sorted('hello'))
# for i in reversed(atuple):
# print(i,end='')
# py_str = 'hello world!'
# print(py_str)
# py_str.capitalize() #行首字母大写
# print(py_str.capitalize())
# print(py_str.title()) #每个单词首字母大写
# print(py_str.center(50)) #居中50格子默认用空格补齐
# print(py_str.center(50,'#')) #居中50并且用#补全
# print(py_str.ljust(50)) #左对齐右边默认空格补全
# print(py_str.rjust(50,'*')) #右对齐并以*补全左边50
# print(py_str.count('l')) #统计i出现的次数
# print(py_str.count('lo'))
# print(py_str.endswith('!')) #以!结尾么?
# print(py_str.endswith('d!'))
# print(py_str.startswith('a')) #是以a开头么?
# print(py_str.islower()) #字母都是小写的?其他字符不考虑
# print(py_str.isupper()) #字母都是大写的?其他字符不考虑
# print(' \thello\t '.strip()) #默认去除两端空白字符,常用
# print('hello\t '.lstrip()) #去除左边
# print('how are you ?'.split()) #默认分离 以空格为分割标志
# print('hello.tar.gz'.split('.')) #分离 以·为分割标志
# print('.'.join(['hello','tar','gz'])) #合并 是split和join是相反的
# print('%s is %s years old'% ('bob',23)) #常用
# print('%s is %d years old'% ('bob',23))
# print('%s is %d years old'% ('bob',23.5)) #%d只能整数 但是不会报错
# print('%s is %f years old'% ('bob',23.5)) #小数显示
# print('%s is %.2f years old'% ('bob',23.5))
# print('%s is %5.2f years old'% ('bob',23.5))
# print('%s is %5.f years old'% ('bob',23.5)) #宽五保留两位小数
# print('97 is %c '% 97) #ascii码中小写字母a编号为97
# print('11 is %#o'% 11) #表示有前缀的八进制(11 is 0o13)
# print('11 is %#x'% 11) #表示有前缀的十六进制(11 is 0xb)
# print('%10s%5s'% ('name','age')) #%10s表示总宽度为10,走对其
# print('%-10s%-5s'% ('name','age')) #左对齐
# print('%10d'% 123)
# print('%010d'% 123) #右靠其并且总长度为10不足的用0补全
# print('{} is {} years old'.format('bob',25))
# print('{1} is {0} years old'.format(25,'bob'))
# print("{:<10}{:<8}".format('name', 'age')) #向左对其
# print("{:>10}{:>8}".format('name', 'age')) #向右对其
# import shutil
#
# with open('/etc/passwd','rb')as sfobj:
# with open('/tmp/mima.txt','wb')as dfobj:
# shutil.copyfileobj(sfobj,dfobj) #拷贝文件对象
#
# shutil.copyfile('/etc/passwd','/tmp/mima2.txt')
# shutil.copy('/etc/shadow','/tmp/') #cp /etc/shadow /tmp/
# shutil.copy2('/etc/shadow','/tmp/') #cp -p /etc/shadow /tmp/
# shutil.move('/tmp/mima.txt','/var/tmp') #mv /tmp/mima.txt /var/tmp
# shutil.copytree('/etc/security','/tmp/anquan') #cp -r /etc/security /tmp/anquan
# shutil.rmtree('/tmp/anquan') #rm -rf /tmp/anquan
# #将mima2的权限在设置成与/etc/shadow一样
# shutil.copymode('/etc/shadow','/tmp/mima2.txt')
# #将mima2.txt的\元数据设置成与/etc/shadow一样
# #元数据使用stat /etc/shadow查看
# shutil.copystat('/etc/shadow','/tmp/mima2.txt')
# shutil.chown('/tmp/mima2.txt',user='zhangsan',group='zhangsan')
#
# import os
#
# def get_fname():
# while True:
# fname = input('filename: ')
# if not os.path.exists(fname):
# break
# print('%s already exists.Try again'% fname)
#
# return fname
#
# def get_content():
# content = []
# print('输入数据,输入end结束')
# while True:
# line = input('>')
# if line == 'end':
# break
# content.append(line)
#
# return content
#
# def wfile(name,content):
# with open(fname,'w')as fobj:
# fobj.writelines(content)
#
# if __name__ == '__main__':
# fname = get_fname()
# content = get_content()
# content = ['%s\n'% line for line in content]
# wfile(fname,content)
alist = [1,2,3,'bob','alice']
# alist[0] = 10
# alist[1:3] = [20,30]
# print(alist)
# alist[2:2] = [22,24,26,28]
# print(alist)
# print(alist.append(100))
# alist.remove(24) #删除第一个24
# alist.index('bob') #返回下标
# blist = alist.copy() #相当于blist = alist[:]
# alist.insert(1,15) #向下标为1的位置插入数字15
# alist.pop() #默认弹出最后一项
# alist.pop(2) #弹出下标为2的项目
# alist.pop(alist.index('bob'))
# alist = [1,2,3,4,5,6]
# alist.sort(reverse=True) #倒叙排序
# print(alist)
# alist.reverse()
# alist.count(20) #统计20出现次数
# alist.clear()
# #alist.append('new')
# alist.extend('new') #['n', 'e', 'w']
# alist.extend(['hello','world','hehe'])
# print(alist)
#检查变量名称是否符合标准
import sys
import keyword
import string
first_chs = string.ascii_letters + '_'
all_chs = first_chs + string.digits
def check_id(idt):
if keyword.iskeyword(idt):
return "%s is keyword" % idt
if idt[0] not in first_chs:
return "1st invalid"
for ind,ch in enumerate(idt[1:]):
if ch not in all_chs:
return "char in postion #%s invalid" % (ind + 2)
return '%s is valid' % idt
if __name__ == '__main__':
print(check_id(sys.argv[1]))
#
# import subprocess
# import sys
# from randpass2 import randpass
#
# def adduser(username,password,fname):
# data= '''user information:
# %s:%s
# '''
#
# subprocess.call('useradd %s'% username,shell=True)
# subprocess.call(
# 'echo %s |passwd --stdin %s'% (password,username),
# shell=True
# )
# with open(fname,'a')as fobj:
# fobj.write(data % (username,password))
#
# if __name__ == '__main__':
# username = sys.argv[1]
# password = randpass()
# adduser(username,password,'/tmp/user.txt')
# #python adduser.py.john
#
# stack = []
#
# def push_it():
# item = input('item to push: ')
# stack.append(item)
#
# def pop_it():
# if stack:
# print("from stack popped %s"% stack.pop())
#
# def view_it():
# print(stack)
#
# import sys
#
# def unix2dos(fname):
# dst_fname = fname + '.txt'
#
# with open(fname)as src_fobj:
# with open(dst_fname,'w')as dst_fobj:
# for line in src_fobj:
# line = line.rstrip() +'\r\n'
# dst_fobj.write(line)
#
#
# if __name__ == '__main__':
# unix2dos(sys.argv[1])
# import time
#
# length = 19
# count = 0
#
# while True:
# print('\r%s@%s'% ('#'* count,'#'*(length-count)),end="")
# try:
# time.sleep(0.3)
# except KeyboardInterrupt:
# print('\nBye-bye')
# break
# if count ==length:
# count = 0
# count += 1
#
# adict = dict() #{}
# dict(['ab','cd'])
# bdict = dict([('name','bob'),('age',25)])
# print({}.fromkeys(['zhangsan','lisi','wangwu'],11))
#
# for key in bdict:
# print('%s:%s'% (key,bdict[key]))
#
# print('%(name)s:%(age)s'% bdict)
#
# bdict['name'] = 'tom'
# bdict['email'] = '[email protected]'
#
# del bdict['email']
# print(bdict)
# bdict.pop('age')
# bdict.clear()
# stack = []
#
# def push_it():
# data = input('数据: ').strip()
# if data:
# stack.append(data)
# else:
# print('输入内容为空.')
#
# def pop_it():
# if stack:
# print('从栈中,弹出:%s'% stack.pop())
# else:
# print('空栈')
#
# def view_it():
# print(stack)
#
# def show_menu():
# cmds = {'0': push_it,'1': pop_it,'2': view_it}
# prompt ="""(0)压栈
# (1)出栈
# (2)查询
# (3)退出
# 请选择(0/1/2/3): """
#
# while True:
# choice = input(prompt).strip()
# if choice not in ['0','1','2','3']:
# print('input is invalid,Try again,')
# continue
#
# if choice =='3':
# print('\nBye-bye')
# break
#
# cmds[choice]()
#
# if __name__ == '__main__':
# show_menu()