python3 week4
生活随笔
收集整理的這篇文章主要介紹了
python3 week4
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
1 實現(xiàn)四舍五入,禁止使用python內(nèi)建函數(shù)。
func(soure_num, precise),source_num為需要處理的數(shù)據(jù),precise為需要保留的位數(shù)
"""
File: 01四舍五入.py
Author: chde_wang
Date: 2020-08-09 12:14:59
Description:實現(xiàn)四舍五入,禁止使用python內(nèi)建函數(shù)。
func(soure_num, precise),source_num為需要處理的數(shù)據(jù),precise為需要保留的位數(shù)1.判斷輸入的是否為數(shù)字
2.是否為浮點數(shù)
3.
"""def func(source_num, precise_num):source_num_str = str(source_num)source_num_list = source_num_str.split('.')print("四舍五入后數(shù)值為:", end='')float_str = ''# 對保留位數(shù)進行判斷if precise_num < 0:print("保留位數(shù)沒意義!")elif precise_num == 0:if int(source_num_list[-1]) == 0:float_str = int(source_num_str)else:if int(source_num_list[-1][-1]) >= 5:float_list = list(source_num_list[-1])float_list[-1] = str(int(float_list[-1]) + 1)float_str = ''.join(float_list)else:float_str = source_num_list[0]print(float_str)# 保留位數(shù)有意義,且是整數(shù)else:# 整數(shù)補零if source_num_list[-1] == '0':if precise_num != 0:float_len = len(source_num_list[-1])float_list = list(source_num_list[-1])num_zero = precise_num - float_lenfor i in range(num_zero):float_list.append('0')float_str = ''.join(float_list)# 是小數(shù)else:# 保留位數(shù)等于小數(shù)位數(shù)if len(source_num_list[-1]) == precise_num:float_str = source_num_list[-1]# 保留位數(shù)小于小數(shù)位數(shù) 補零elif len(source_num_list[-1]) < precise_num:float_len = len(source_num_list[-1])float_list = list(source_num_list[-1])num_zero = precise_num - float_lenfor i in range(num_zero):float_list.append('0')float_str = ''.join(float_list)# 保留位數(shù)大于小數(shù)位數(shù)else:# 保留位后一位大于等于5 進位if int(source_num_list[-1][precise_num]) >= 5:float_list = list(source_num_list[-1])float_list[precise_num-1] = str(int(float_list[precise_num-1])+1)float_str = ''.join(float_list)if precise_num == 1:float_str = float_str[0]else:float_str = float_str[0:precise_num]else:float_str = source_num_list[-1][0:precise_num]str_list = [source_num_list[0], '.', float_str]str_list = ''.join(str_list)print(str_list)source_num = input("請輸入數(shù)據(jù):") # 12.3434345
precise_num = input("請輸入保留位數(shù):")
try:source_num = float(source_num)precise_num = int(precise_num)func(source_num, precise_num)
except ValueError:print("您輸入的不是數(shù)字!")
沒有實現(xiàn)保留0位小數(shù)的進制問題。
修改 參考夢園:
""" File: 03四舍五入?yún)⒖級魣@.py Author: chde_wang Date: 2020-08-17 22:57:09 Description: """def func_round_me(num=0, precision=0):digit = 10**precisionint_num = float(int(num * digit))flag = str(num).find('.')flag_tag = str(num)[flag+precision+1]if num >= 0:if int(flag_tag) >= 5:int_num = (int_num + 1) / digitelse:int_num = int_num / digitelse:if int(flag_tag) >= 5:int_num = (int_num - 1) / digitelse:int_num = int_num / digitreturn int_numtry:num = float(input("請輸入數(shù)值:"))precision = int(input("請輸入保留位數(shù):")) except ValueError:print("輸入錯誤!") print("{}保留{}位小數(shù),四舍五入后的結(jié)果為{}".format(num, precision, func_round_me(num, precision)))2實現(xiàn)reduce的功能,請自行百度內(nèi)建函數(shù)reduce的功能
""" File: reduce實現(xiàn).py Author: chde_wang Date: 2020-08-09 19:57:55 Description:實現(xiàn)reduce的功能,請自行百度內(nèi)建函數(shù)reduce的功能 """def foo(*args):if len(args) <= 2:# 判斷第一個參數(shù)為可迭代類型try:if isinstance(args[0], (list,tuple)):# 第一個參數(shù)不為空if args[0]:# 第二個參數(shù)不為空if args[1]:# 兩個參數(shù)類型一致if type(args[0][0]) == type(args[1]):if len(str(args[0])) == 1:return args[0] + args[1]else:sum = args[1]for i in range(len(args[0])):sum += args[0][i]return sumelse:print("類型不一致!")# 第二個參數(shù)為空else:if type(args[0][0] == 'str'):sum = ''elif type(args[0][0] == 'int'):sum = 0for i in range(len(args[0])):sum += args[0][i]return sum# 第一個參數(shù)為空 第二個參數(shù)不為空elif args[1]:return args[1]else:print("參數(shù)為空")except TypeError:print("類型不一致")def my_reduce(fun_name, arg1, arg2=0):if fun_name(arg1, arg2):print(fun_name(arg1,arg2))my_reduce(foo, ['1', '2'], '1')修改(參考夢園):
from collections import Iterable def my_reduce(fun_name, arg1, arg2=None):if arg2:if isinstance(arg1, Iterable):value = arg2for i in arg1:value=fun_name(value,i)return value print(my_reduce(add,[1,2,3,4],5))?
如何替換字符串中指定位置的字符呢?
字符串轉(zhuǎn)換列表替換并轉(zhuǎn)換解決:
def replace_char(string,char,index):string = list(string)string[index] = charreturn ''.join(string)參考自https://www.cnblogs.com/bingoTest/p/10449941.html
總結(jié)
以上是生活随笔為你收集整理的python3 week4的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 『TensorFlow』模型保存和载入方
- 下一篇: python eval简介