
一、之前6.29题我做的代码
这是用数字来进行分辨的
is_txt = 4383576018402626 #合法
def split_the_data_even(vis_n):
    current_a1 = vis_n // 10000
    a_t1 = vis_n % 10000
    # print("1th", a_t1)
    a_t2 = current_a1 % 10000
    # print("2th", a_t2)
    current_a3 = current_a1 // 10000
    a_t3 = current_a3 % 10000
    # print("3th", a_t3)
    a_t4 = current_a3 // 10000
    # print("4th", a_t4)
    even1 = a_t1 % 10
    even2 = a_t1 // 100 % 10
    even3 = a_t2 % 10
    even4 = a_t2 // 100 % 10
    even5 = a_t3 % 10
    even6 = a_t3 // 100 % 10
    even7 = a_t4 % 10
    even8 = a_t4 // 100 % 10
    return even1, even2, even3, even4, even5, even6, even7, even8
# 奇数
def split_the_data_odd(vis_n):
    current_a1 = vis_n // 10000
    a_t1 = vis_n % 10000
    # print("1th", a_t1)
    a_t2 = current_a1 % 10000
    # print("2th", a_t2)
    current_a3 = current_a1 // 10000
    a_t3 = current_a3 % 10000
    # print("3th", a_t3)
    a_t4 = current_a3 // 10000
    # print("4th", a_t4)
    odd1 = a_t1 // 10 % 10
    odd2 = a_t1 // 100 // 10
    #
    odd3 = a_t2 // 10 % 10
    odd4 = a_t2 // 100 // 10
    #
    odd5 = a_t3 // 10 % 10
    odd6 = a_t3 // 100 // 10
    #
    odd7 = a_t4 // 10 % 10
    odd8 = a_t4 // 100 // 10
    return odd1, odd2, odd3, odd4, odd5, odd6, odd7, odd8
def mult_num_odd(int_num, m_num):
    a = int_num * m_num
    if a >= 10:
        div_a1 = a // 10
        div_a2 = a % 10
        return div_a1 + div_a2
    elif a == 0:
        return a
    else:
        return a
def odd_add(visa_txt):
    a_text = split_the_data_odd(visa_txt)
    temp_text = 0
    for i in a_text:
        temp_text += mult_num_odd(i, 2)
    return temp_text
def even_add(visa_txt):
    even_text = split_the_data_even(visa_txt)
    temp_text = 0
    for i in even_text:
        temp_text += i
    return temp_text
def is_valid(visa_text):
    a = odd_add(visa_text) + even_add(visa_text)
    if a % 10 == 0:
        print(f"This visa code {visa_text} is valid!")
    else:
        print(f"This visa code {visa_text} is not valid!")
        print("Sorry! again input, or call worker!")
        print(a)
is_valid(vis_txt)

 顺便说一句驼峰在win系统里还好使,到mac的python就一顿贬低的报错.
二、本题是用字符串来做,原谅我,我有暗自骂了作者
也就是说我将数字变成字符串.那么我就不能用整除、除于,只能用字符串和循环来完成
2024.09.06
 我现在不明白这个大哥到底什么意思??
 字符串不能加减乘除呀。字符串更不能进行什么换算。
 我到底要验证什么呢
 通过字符串验证什么呢
2024.9.9
 应急局不知道哪天来抽查, 我还有19日到20日的全天培训,
 真的和我此时的代码一样.
 停了这么久,今天突然想开了.
 将整数转成字符串,然后再识别会数字.但是用循环就比较 失败了.
def if_digit(num):
    if num == "0":
        return 0
    elif num == "1":
        return 1
    elif num == "2":
        return 2
    elif num == "3":
        return 3
    elif num == "4":
        return 4
    elif num == "5":
        return 5
    elif num == "6":
        return 6
    elif num == "7":
        return 7
    elif num == "8":
        return 8
    elif num == "8":
        return 8
    elif num == "9":
        return 9
def run_text(num_t,text_about):
    for i in range(0, num_t):
      return if_digit(text_about[i])
a = run_text(len_num,str_vis_text)
print(a)
这段代码只显示4.
 我就不截图了
 如果你只输出可以得到数列但是往往不能计算了
for i in range(0, num_t):
      return if_digit(text_about[i])
如果不用光用 循环可以显示整个数列,但是还不能当成一个完整的整数列,来用.
 终于我忍不住换了使用python的保留名字之一的
 isalnum()这哥们有点敌我不分
 isdigit()还是它比较好
if str_vis_text.isdigit() is False:
    print("This str word is worry!")
else:
    text_to_integer = int(str_vis_text)
    is_valid(text_to_integer)
成功了.if代表 如果字符串里有字母.则返回真
 else:代表如返回否,则开始将字符串变沉整数序列,然后放到直接做好的函数is_valid



 
两个结果,两种效果.明天顺利



















