一、之前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
两个结果,两种效果.明天顺利