import logging
logger = logging.getLogger(__name__)
def strConvertList(str):
logger.info("logger-info-strConvertList str : %s ", str)
return str.split("_")
def listConvertStr(str_to_list):
return "_".join(str_to_list)
def replaceStr():
return "user_name_age_sex".replace("_", "%")
def printMultiplication():
for x in range(1, 10):
for y in range(1, x + 1):
print("{}x{}={}\t".format(x, y, x * y), end="")
print()
"""从下标 0 开始索引,找出单词 “welcome” 在字符串“Hello, welcome to my world.”
中出现的位置,找不到返回 -1。"""
def getStrIndexWhere(source_str, target_str):
find_right_str = target_str.rfind(source_str, 0, len(target_str))
find_str = target_str.rindex(source_str, 0, len(target_str))
return find_right_str or find_str
def getStrIndexFirstAndLast(source_str, target_str):
index_str = target_str.index(source_str)
last_str = index_str + len(source_str) - 1
return str(index_str) + ',' + str(last_str)
def countExistsStrNum(find_str, source_str):
return source_str.count(find_str, 0, len(source_str))
def countExistsStrNum2(find_str, source_str):
num = 0
for x in source_str:
if find_str == x:
num += 1
return num
def statisticsStrOutputNum(find_str, source_str):
count_str_dic = {}
for x in source_str:
if count_str_dic.get(x) is None:
count_str_dic[x] = 1
else:
count_str_dic[x] = count_str_dic.get(x) + 1
print(count_str_dic)
return count_str_dic.get(find_str)
def _is_contain_target_str(find_str, source_str):
# find_str_result = source_str.find(find_str, 0, len(source_str))
# print(find_str_result)
# count_str_result = source_str.count(find_str)
# print(count_str_result)
if find_str in source_str:
return True
else:
return False
def _find_str_count_num(index, num, source_str):
list_str = []
for x in source_str:
count_num = source_str.count(x, 0, len(source_str))
if count_num == num:
list_str.append(x)
return list_str[index - 1]
def _find_str_first_index(find_str, source_str):
return source_str.find(find_str)
def _flag_num_is_odd_number_or_even_number(num):
is_odd_number, is_even_number = '奇数', '偶数'
if num % 2 == 0:
return is_even_number
else:
return is_odd_number
def _flag_str_is_number(str):
return str.isnumeric()
def _str_is_convert(str1, str2):
list = []
list.append(str1.upper())
list.append(str2.lower())
return list
def _str_is_strip(str):
return str.strip()
def _str_is_while_trim(str):
while (True):
flag = 0
if str[:1] == ' ':
str = str[1:]
flag = 1
if str[-1:] == ' ':
str = str[:-1]
flag = 1
if flag == 0:
break
return str
def _str_is_digui_trim(str):
flag = 0
if str[:1] == ' ':
str = str[1:]
flag = 1
if str[-1:] == ' ':
str = str[:-1]
flag = 1
if flag == 1:
return _str_is_digui_trim(str)
else:
return str
def _str_is_distinct_and_sort(str1):
list_str = []
for x in str1:
if x not in list_str:
list_str.append(x)
print(list_str)
list_str.sort()
print(list_str)
# return "".join(str(y) for y in list_str)
return "".join(list_str)
def _str_is_print_lingxing(num):
for x in range(-int(num / 2), int(num / 2) + 1):
if num - abs(x) * 2 == 0:
print(" " * abs(x), "*" * 1)
else:
print(" " * abs(x), "*" * (num - abs(x) * 2))
def _str_digit_reverse_order(num):
print("数据长度 : ", len(str(num)))
return str(num)[::-1]
def _str_is_shui_xian_hua_num(num):
if type(num) != int:
return '违法参数'
if int(num) <= 0:
return '违法参数'
result_num = []
for x in range(num, 0, -1):
digit_num = []
temp_num = x
while len(digit_num) < len(str(x)):
y = temp_num % 10
digit_num.append(y)
if len(digit_num) >= len(str(x)):
break
else:
temp_num = int(str(x)[:len(str(x)) - len(digit_num)])
add_num = 0
for z in digit_num:
add_num += z ** 3
if x == add_num:
result_num.append(x)
return result_num
def _str_is_shui_xian_hua_num1(num1, num2):
list_str = []
for x in range(num1, num2):
i = x // 100
j = x // 10 % 10
k = x % 10
if i ** 3 + j ** 3 + k ** 3 == x:
list_str.append(x)
return list_str
def _str_is_add_num(num):
add_num = 0
for x in range(0, num + 1):
add_num += x
return add_num
def _str_is_add_num2(num):
add_num = 0
for x in range(0, num + 1):
add_num += x
return add_num
if __name__ == '__main__':
str_to_list = strConvertList('user_name_age_sex')
print(f'strConvertList : {str_to_list}')
list_to_str = listConvertStr(str_to_list)
print(f'listConvertStr : {list_to_str}')
replace_str = replaceStr()
print(f'replaceStr : {replace_str}')
printMultiplication()
str_index_where = getStrIndexWhere('welcome', 'Hello, welcome to my world.')
print(f'str_index_where : {str_index_where}')
first_last_index = getStrIndexFirstAndLast('welcome', 'Hello, welcome to my world.')
print(f'first_last_index : {first_last_index}')
str_count = countExistsStrNum('o', 'Hello, welcome to my world.')
print(f'str_count : {str_count}')
str_count2 = countExistsStrNum2('o', 'Hello, welcome to my world.')
print(f'str_count2 : {str_count2}')
str_output_count = statisticsStrOutputNum(' ', 'Hello, welcome to my world.')
print(f'str_output_count : {str_output_count}')
is_contain_target_str = _is_contain_target_str('come1', 'Hello, welcome to my world.')
print(f'is_contain_target_str : {is_contain_target_str}')
_find_str_count_num = _find_str_count_num(1, 2, 'Hello, welcome to my world.')
print(f'find_str_count_num : {_find_str_count_num}')
find_str_first_index = _find_str_first_index('ooo', 'Hello, welcome to my world.')
print(f'find_str_first_index : {find_str_first_index}')
flag_num_is_qishu_or_oushu = _flag_num_is_odd_number_or_even_number(-5)
print(f'flag_num_is_qishu_or_oushu : {flag_num_is_qishu_or_oushu}')
flag_str_is_number = _flag_str_is_number('34345')
print(f'flag_str_is_number : {flag_str_is_number}')
str_is_convert = _str_is_convert('This is string example….wow!', 'Welcome To My World')
print(f'str_is_convert : {str(str_is_convert)}')
str_is_while_trim = _str_is_while_trim(' Welcome To My World ')
print(f'str_is_while_trim : {str_is_while_trim}')
str_is_digui_trim = _str_is_digui_trim(' Welcome To My World ')
print(f'str_is_digui_trim : {str_is_digui_trim}')
str_is_distinct_and_sort = _str_is_distinct_and_sort('sdcvsazaaapp')
print(f'str_is_distinct_and_sort : {str_is_distinct_and_sort}')
str_is_print_lingxing = _str_is_print_lingxing(8)
print(f'str_is_print_lingxing : {str_is_print_lingxing}')
str_digit_reverse_order = _str_digit_reverse_order(45667)
print(f'str_digit_reverse_order : {str_digit_reverse_order}')
str_is_shui_xian_hua_num = _str_is_shui_xian_hua_num(10000)
print(f'str_is_shui_xian_hua_num : {str_is_shui_xian_hua_num}')
str_is_shui_xian_hua_num1 = _str_is_shui_xian_hua_num1(1,1000)
print(f'str_is_shui_xian_hua_num1 : {str_is_shui_xian_hua_num1}')
str_is_add_num = _str_is_add_num(100)
print(f'str_is_add_num : {str_is_add_num}')
print(2 * (-2) ** 2)