Python 小技巧总结

目录

int类型的最大(小)值

for...else的用法

判断是否为数字或者字符

大小写转换

交互式的输入输出

定义栈,自己用

按列表中元素的某个属性给元素排序


 


int类型的最大(小)值

import sys
MAX_INT=sys.maxsize
MIN_INT=sys.minsize
print(MAX_INT)
print(MIN_INT)

 

for...else的用法

for......else......的执行顺序为:

当迭代对象完成所有迭代后且此时的迭代对象为空时,如果存在else子句则执行else子句,没有则继续执行后续代码;如果迭代对象因为某种原因(如带有break关键字)提前退出迭代,则else子句不会被执行,程序将会直接跳过else子句继续执行后续代码

for x in range(5):
    if x == 2:
        print(x)
        # break
else:
    print("precessing else....")

输出结果: 

 

判断是否为数字或者字符

isdigit:判断是否为数字

isalpha:判断是否为字母(不区分大小写)

isalnum:判断是否为字母和数字的组合,

         判断标准:如果字符串中含有除了字母或者数字之外的字符,比如空格,才会返回False,都为字母或者都为数字,也会返回true。

str_1 = "123"
str_2 = "Abc"
str_3 = "123Abc"

#用isdigit函数判断是否数字
print(str_1.isdigit())
Ture
print(str_2.isdigit())
False
print(str_3.isdigit())
False

#用isalpha判断是否字母
print(str_1.isalpha())    
False
print(str_2.isalpha())
Ture    
print(str_3.isalpha())    
False

#isalnum判断是否数字和字母的组合
print(str_1.isalnum())    
Ture
print(str_2.isalnum())
Ture
print(str_1.isalnum())    
Ture

 

大小写转换

str = "www.runoob.com"
print(str.upper())          # 把所有字符中的小写字母转换成大写字母
print(str.lower())          # 把所有字符中的大写字母转换成小写字母
print(str.capitalize())     # 把第一个字母转化为大写字母,其余小写
print(str.title())          # 把每个单词的第一个字母转化为大写,其余小写

输出结果: 

 

交互式的输入输出

import sys
lines = sys.stdin.readlines()
line = []
for x in lines:
    values = list(map(int, x.split()))
    line.append(values)

多用于牛客网,在线笔试的过程中,不确定输入相同类型的变量数量,就拿这个,有多少输入,就收多少。

 

定义栈,自己用


from collections import deque

class Stack(object):
    def __init__(self):
        self._items = deque()
 
    def push(self, value):
        return self._items.append(value)
 
    def pop(self):
        return self._items.pop()
 
    def empty(self):
        return len(self._items) == 0

 

按列表中元素的某个属性给元素排序

import operator  #导入operator 包,pip install operator
 
Departs = []#待排序列表
class Department:#自定义的元素
    def __init__(self,id,name,id2):
        self.id = id
        self.name = name
        self.key = key
 
#创建元素和加入列表
Departs.append(Department(1, 'cbc' ,'1'))
Departs.append(Department(2, 'acd' ,'1'))
Departs.append(Department(3, 'bcd' ,'1'))
Departs.append(Department(1, 'bcd' ,'1'))
Departs.append(Department(2, 'acd' ,'3'))
 
#划重点#划重点#划重点----排序操作
cmpfun = operator.attrgetter('id','name')#参数为排序依据的属性,可以有多个,这里优先id,使用时按需求改换参数即可
Departs.sort(key=cmpfun)#使用时改变列表名即可
#划重点#划重点#划重点----排序操作
 
#此时Departs已经变成排好序的状态了,排序按照id优先,其次是name,遍历输出查看结果
for depart in Departs:
    print(str(depart.id) + depart.name + depart.id2)

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值