列表创建身份证城市代码用for
时间: 2024-02-09 14:09:33 浏览: 17
可以使用for循环来创建身份证城市代码的列表。具体实现方法如下:
```
# 定义城市代码字典
city_codes = {
'北京市': '110000',
'天津市': '120000',
'上海市': '310000',
'重庆市': '500000',
# 省略其它城市代码
}
# 创建城市代码列表
city_code_list = []
for key, value in city_codes.items():
city_code_list.append(value)
# 打印列表
print(city_code_list)
```
运行以上代码,输出结果为:
```
['110000', '120000', '310000', '500000']
```
这样就可以使用for循环将字典中的城市代码添加到列表中。
相关问题
用sql进行身份证校验代码
可以使用如下的 SQL 语句进行身份证校验:
```sql
SELECT CASE
WHEN LENGTH(idcard) = 15 AND REGEXP_LIKE(idcard, '^[0-9]{15}') THEN
CASE
WHEN TO_CHAR(TO_DATE('19' || SUBSTR(idcard, 7, 6), 'YYYYMMDD'), 'YYYYMMDD') = SUBSTR(idcard, 7, 6) THEN 1
ELSE 0
END
WHEN LENGTH(idcard) = 18 AND REGEXP_LIKE(idcard, '^[0-9]{17}[0-9X]{1}') THEN
CASE
WHEN TO_CHAR(TO_DATE(SUBSTR(idcard, 7, 8), 'YYYYMMDD'), 'YYYYMMDD') = SUBSTR(idcard, 7, 8) AND
SUM(SUBSTR('10X98765432', MOD(SUM(SUBSTR(idcard, 1, 17) * SUBSTR('7913582463', ROWID)), 11) + 1, 1) * POWER(2, ROWID - 1)) MOD 11 =
CASE
WHEN SUBSTR(idcard, 18, 1) = 'X' THEN 10
ELSE CAST(SUBSTR(idcard, 18, 1) AS NUMBER)
END
THEN 1
ELSE 0
END
ELSE 0
END AS is_valid_idcard
FROM dual;
```
其中,idcard 是需要校验的身份证号码。如果返回值为 1,则表示身份证号码校验通过。
Java身份证校验代码
以下是Java身份证校验代码:
```
public static boolean isValidIdNumber(String idNumber) {
// 长度必须为18位
if (idNumber == null || idNumber.length() != 18) {
return false;
}
// 前17位必须是数字
for (int i = 0; i < 17; i++) {
if (!Character.isDigit(idNumber.charAt(i))) {
return false;
}
}
// 校验码校验
int sum = 0;
int[] weights = {7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2};
String codes = "10X98765432";
for (int i = 0; i < weights.length; i++) {
sum += (idNumber.charAt(i) - '0') * weights[i];
}
int index = sum % 11;
char code = codes.charAt(index);
return code == idNumber.charAt(17);
}
```
该代码首先检查身份证号的长度是否为18位,然后检查前17位是否为数字。最后,它计算校验码并检查它是否与身份证号的最后一位相同。如果所有检查都通过,则返回true,否则返回false。