python身份比较(python身份证性别辨别)

发布时间:2022-11-15

本文目录一览:

  1. python的逻辑运算符有哪些
  2. python身份运算符怎么用
  3. python之什么是对象值比较,什么是对象身份比较
  4. 用Python校验身份证号码真伪

python的逻辑运算符有哪些

主要有四种:

  1. 比较运算符
    如果成立则返回True,不成立则返回False
    注意:不同类型的对象之间只能用“==!=”作比较。
  2. 成员运算符
    成员运算符的关键词是“in”,判断一个元素是否在某一个列表(容器)中。
  3. 身份运算符
    身份运算符是用来比较两个对象是否是同一个对象,主要用“isis not”来判断。
  4. 布尔运算符
    在Python中有3种布尔运算符:andornot

python身份运算符怎么用

Python身份运算符 身份运算符用于比较两个对象的存储单元。 以下实例演示了Python所有身份运算符的操作:

#!/usr/bin/python
a = 20
b = 20
if (a is b):
    print "Line 1 - a and b have same identity"
else:
    print "Line 1 - a and b do not have same identity"
if (id(a) == id(b)):
    print "Line 2 - a and b have same identity"
else:
    print "Line 2 - a and b do not have same identity"
b = 30
if (a is b):
    print "Line 3 - a and b have same identity"
else:
    print "Line 3 - a and b do not have same identity"
if (a is not b):
    print "Line 4 - a and b do not have same identity"
else:
    print "Line 4 - a and b have same identity"

以上实例输出结果:

Line 1 - a and b have same identity
Line 2 - a and b have same identity
Line 3 - a and b do not have same identity
Line 4 - a and b do not have same identity

python之什么是对象值比较,什么是对象身份比较

所说所有的变量都是对象。对象在Python里,其实是一个指针,指向一个数据结构,数据结构里有属性,有方法。对象通常就是指变量。从面向对象OO的概念来讲,对象是类的一个实例。在Python里很简单,对象就是变量。 例如:

class A:
    myname = "class a"

上面就是一个类。不是对象。

a = A()

这里变量a就是一个对象。它有一个属性(类属性),myname,你可以显示出来:

print a.myname

所以,你看到一个变量后面跟点一个小数点。那么小数点后面就是它的属性或者是方法。带括号的方法。不带就是属性。

用Python校验身份证号码真伪

# 这个算法都给了,应该比较简单吧。我也很菜,随意写了一个。异常没做,你可以自己加一下。
# 做一些验证过滤。不知道随机是不是真是随意随机,我没有按照身份证规则做随机。
# 是真的随机了18位。。。如果你有规则,也可以自己写一个。
import random
yushu = [x for x in range(0, 11)]
ma = ['1','0','X','9','8','7','6','5','4','3','2','1']
def yanzheng(nid):
    dicma = dict(zip(yushu, ma))
    sum = 0
    for x, y in enumerate(nid[:-1]):
        sum += ((2**(18 - x - 1)) % 11) * int(y)  # 17位对应系数相乘的和
    if nid[-1] == dicma[sum % 11]:  # 校验码对照
        return '%s True' % nid
    else:
        return '%s False' % nid
def readfile(fname):
    f = open(fname, 'rb')
    for line in f.readlines():
        print yanzheng(line.strip())
    f.close()
def randnum():
    idstr = ''
    for i in range(17):  # 前17位随机
        idstr += str(random.randint(0, 9))
    idstr += random.choice(ma)  # 最后一位从列表中随意一个,因为有X
    return idstr
if __name__ == "__main__":
    nid = raw_input('Please enter your ID: ')  # 用户输入ID,没做任何验证
    print yanzheng(nid)  # 验证身份证
    readfile('id.txt')  # 从文件读出来 再验证
    print yanzheng(randnum())  # 随机一个 再验证