Python中的if __name__ == ‘__main__‘
if name == 'main’的意思是:當(dāng).py文件被直接運(yùn)行時(shí),if name == 'main’之下的代碼塊將被運(yùn)行;當(dāng).py文件以模塊形式被導(dǎo)入時(shí),if name == 'main’之下的代碼塊不被運(yùn)行。
from here
eval()和float()函數(shù)都可以把input() 函數(shù)接收到的數(shù)值型字符串轉(zhuǎn)為數(shù)值類(lèi)型
例:float(‘3.14’) 的結(jié)果是數(shù)值 3.14
python map函數(shù):map()是 Python 內(nèi)置的高階函數(shù),它接收一個(gè)函數(shù) f 和一個(gè) list,并通過(guò)把函數(shù) f 依次作用在 list 的每個(gè)元素上,得到一個(gè)新的 list 并返回。
假設(shè)用戶(hù)輸入的英文名字不規(guī)范,沒(méi)有按照首字母大寫(xiě),后續(xù)字母小寫(xiě)的規(guī)則,請(qǐng)利用map()函數(shù),把一個(gè)list(包含若干不規(guī)范的英文名字)變成一個(gè)包含規(guī)范英文名字的list: 輸入:['adam', 'LISA', 'barT'] 輸出:['Adam', 'Lisa', 'Bart']def format_name(s):s1=s[0:1].upper()+s[1:].lower();return s1; print map(format_name, ['adam', 'LISA', 'barT'])from here
不同大小的數(shù)組之間的運(yùn)算叫做廣播(broadcasting)
/ 除
// 整除
% 模(返回除法的余數(shù))
Python123-編程更簡(jiǎn)單
python中的math函數(shù)
Python中break和continue區(qū)別
Python split()方法:Python split() 通過(guò)指定分隔符對(duì)字符串進(jìn)行切片,如果參數(shù) num 有指定值,則分隔 num+1 個(gè)子字符串
str.split(str="", num=string.count(str)).
參數(shù)
str – 分隔符,默認(rèn)為所有的空字符,包括空格、換行(\n)、制表符(\t)等。
num – 分割次數(shù)。默認(rèn)為 -1, 即分隔所有。
math — 數(shù)學(xué)函數(shù)
正負(fù)交錯(cuò)數(shù)列前n項(xiàng)和
n = int(input()) result = 1 # 首項(xiàng)的值,作為累加初值 sign = -1 # 符號(hào),第二項(xiàng)是負(fù)值, previous, current = 1, 1 # 分母數(shù)字的初值,從第二項(xiàng)開(kāi)始符合這個(gè)規(guī)律 for i in range(1, n): # 從1到n-1遍歷n-1次previous, current = current, previous + current # 下一個(gè)數(shù)值是前面兩個(gè)數(shù)的加和result = result + sign * i / current # 注意分子是 isign = -sign # 改變正負(fù)號(hào) print('{:.6f}'.format(result))十進(jìn)制整數(shù)轉(zhuǎn)二進(jìn)制
num = int(input()) s='' if num == 0:s = '0' while num != 0:s = s + str(num % 2) # 將num對(duì)2取余的結(jié)果轉(zhuǎn)字符串拼接到snum = num // 2 print(s[::-1]) # 逆序輸出字符串有一分?jǐn)?shù)序列:2/1,3/2,5/3,8/5,13/8,21/13…求出這個(gè)數(shù)列的前n項(xiàng)之和,n由用戶(hù)輸入。
# 有一分?jǐn)?shù)序列:2/1,3/2,5/3,8/5,13/8,21/13...求出這個(gè)數(shù)列的前n項(xiàng)之和,n由用戶(hù)輸入。 # 除了首項(xiàng),分子位前一項(xiàng)分子分母只和,分母為前一項(xiàng)分子 n = int(input()) sumn = 0 a,b=2,1 for i in range(1,n + 1):sumn=sumn+a/bb,a=a,a+b print(sumn)我國(guó)古代數(shù)學(xué)家張丘建在《算經(jīng)》一書(shū)中提出的數(shù)學(xué)問(wèn)題:雞翁一值錢(qián)五,雞母一值錢(qián)三,雞雛三值錢(qián)一。百錢(qián)買(mǎi)百雞,如果要求雞翁、雞母、雞雛都不為零,問(wèn)雞翁、雞母、雞雛各幾何?
for cock in range(1, 101): # 公雞數(shù)量不為0且小于或等于100for hen in range(1, 101): # 母雞數(shù)量不為0且小于或等于100for chicken in range(1, 101): # 小雞數(shù)量大于0小于等于100且是3的倍數(shù)if chicken % 3 == 0:if cock + hen + chicken == 100 and 5 * cock + 3 * hen + chicken // 3 == 100:print(cock, hen, chicken) # 遇到滿(mǎn)足條件的數(shù)字組合就輸出求數(shù)列前n項(xiàng)的平方和
#1×1+2×2+3×3……的前n項(xiàng)和n = int(input()) sum = 0 for i in range(1,n+1):sum = sum + i * i print(sum)輸出實(shí)數(shù)a除以b的結(jié)果,計(jì)算結(jié)果四舍五入,保留2位小數(shù)。
# 計(jì)算a除以b,結(jié)果保留2位小數(shù) a = eval(input()) b = eval(input()) if b != 0:print(round(a / b, 2)) else:print('除零錯(cuò)誤')字符大小寫(xiě)轉(zhuǎn)換
s = input() for c in s:if c.islower():print(c.upper(),end = '')elif c.isupper():print(c.lower(),end = '')else:print(c,end = '') # print(''.join([i.lower() if i.isupper() else i.upper() for i in input()])) # 也可用下述方法將轉(zhuǎn)變后的字符先加入列表,再將列表中的字符拼接到一起輸出 # import string # # # def swap_case(s): # ls = [] # for c in s: # if c in string.ascii_lowercase: # ls.append(c.upper()) # elif c in string.ascii_uppercase: # ls.append(c.lower()) # else: # ls.append(c) # return ''.join(ls) # # # if __name__ == '__main__': # s = input() # result = swap_case(s) # print(result)isinstance(object,type)作用:來(lái)判斷一個(gè)對(duì)象是否是一個(gè)已知的類(lèi)型。
import mathn = eval(input()) if isinstance(n, int) and n >= 0:print(math.factorial(n)) else:print("ERROR")分期付款計(jì)算器
描述
購(gòu)買(mǎi)房屋或大宗家電時(shí),很多時(shí)候可以分期付款,還款方式分為等額本息和等額本金兩種:????????????????????????????????????????????????????????????????????????????????
等額本息(Average Capital Plus Interest:ACPI)還款公式:
每月還款額=貸款本金月利率(1+月利率)**總還款月數(shù)/((1+月利率)**總還款月數(shù)-1)
等額本金(Average Capital:AC)還款公式:
每月還款額=貸款本金/總還款月數(shù)+(貸款本金-累計(jì)已還款本金)*月利率
設(shè)計(jì)一個(gè)程序計(jì)算分期付款時(shí)每一期的應(yīng)還款額,還款方式輸入錯(cuò)誤時(shí),輸出“還款方式輸入錯(cuò)誤”。
用戶(hù)輸入一個(gè)數(shù)字和一個(gè)字母組成的座位號(hào),根據(jù)字母判斷位置是窗口、中間還是過(guò)道。目前中國(guó)高鐵和國(guó)內(nèi)飛機(jī)窗口位置的字母是’A’和’F’,過(guò)道位置是’C’和 ‘D’,中間位置是’B’。每個(gè)車(chē)廂座位排數(shù)是1-17,輸入時(shí)不區(qū)分字母大小寫(xiě)。根據(jù)輸入判定座位的位置,當(dāng)輸入的數(shù)據(jù)不是一個(gè)合法的座位號(hào)時(shí),輸出“座位號(hào)不存在”。
#用戶(hù)輸入一個(gè)數(shù)字和一個(gè)字母組成的座位號(hào),根據(jù)字母判斷是不是窗口的位置 #目前中國(guó)高鐵窗口位置的字母是'A'和'F',過(guò)道位置是'C'和 'D',中間位置是'E' #數(shù)字序號(hào)是1-17 s = input() try:if 2 <= len(s) < 4 and 1 < int(s[:-1]) <= 17:if s[-1] in ['A','a','F','f']:print('窗口')elif s[-1] in ['C','c','D','d']:print('過(guò)道')elif s[-1] in ['B','b']:print('中間')else:print('座位號(hào)不存在')else:print('座位號(hào)不存在') except:print('座位號(hào)不存在')用戶(hù)輸入一個(gè)小于10的正整數(shù),求1 + 12 + 123 + 1234 + …… 的前n項(xiàng)的和,當(dāng)輸入大于或等于10時(shí),輸出“data error!”
n = int(input()) if n <= 9:total = 0tmp = 0 # 用來(lái)存上一個(gè)數(shù)for i in range(1, n + 1):tmp = tmp * 10 + i # 計(jì)算下一個(gè)要加的數(shù): 1 —> 12,1234 —> 12345total = total + tmpprint(total) else:print('data error!')# 面向測(cè)試用例編程 # print([1, 13, 136, 1370, 13715, 137171, 1371738, 13717416, 137174205][n - 1])```一個(gè)正整數(shù)如果等于組成它的各位數(shù)字的階乘之和,則該正整數(shù)稱(chēng)為階乘和數(shù)。例如正整數(shù)145,1!+4!+5!等于145,因此145就是一個(gè)階乘和數(shù)。輸入一個(gè)正整數(shù),計(jì)算它的各位數(shù)字的階乘之和,判斷它是否是一個(gè)階乘和數(shù)。當(dāng)輸入的數(shù)字為階乘和數(shù)時(shí),輸出“YES”,否則輸出“NO”。注意:輸入的正整數(shù)的最高位不為0。
# 正整數(shù)145,1!+4!+5!等于145 import math# 循環(huán)解法 # n = input() # total = 0 # for i in n: # total = total + math.factorial(int(i)) # print(total) # if int(n) == total: # print('YES') # else: # print('NO')import mathn = input() s = sum(math.factorial(int(i)) for i in n) # 推導(dǎo)式 if int(n) == s:print('YES') else:print('NO')《九章算術(shù)》的“盈不足篇”里有一個(gè)很有意思的老鼠打洞問(wèn)題。原文這么說(shuō)的:今有垣厚十尺,兩鼠對(duì)穿。大鼠日一尺,小鼠亦一尺。大鼠日自倍,小鼠日自半。問(wèn):何日相逢?各穿幾何?????????????????????????????????????????????????????????????????????????????????
這道題的意思就是說(shuō),有一堵十尺厚的墻,兩只老鼠從兩邊向中間打洞。大老鼠第一天打一尺,小老鼠也是一尺。大老鼠每天的打洞進(jìn)度是前一天的一倍,小老鼠每天的進(jìn)度是前一天的一半。問(wèn)它們幾天可以相逢,相逢時(shí)各打了多少。
13日,如果恰逢星期五就叫“黑色星期五”。編程輸出某年所有的黑色星期五的具體日期
補(bǔ)充說(shuō)明
import datetime datetime.datetime.now() 表示當(dāng)前時(shí)間 datetime.datetime.now().isoweekday() # 返回1-7,代表周一到周日,當(dāng)前時(shí)間所在本周第幾天;datetime.datetime.now().weekday() # 返回的0-6,代表周一到周日 import datetime year = int(input()) #輸入任意年份 days = [datetime.date(year, i, 13) for i in range(1, 13)] #產(chǎn)生該年每個(gè)月13日 的列表 for i in days:if i.isoweekday()==5:print(i)總結(jié)
以上是生活随笔為你收集整理的Python中的if __name__ == ‘__main__‘的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 第13章 集成学习和随机森林
- 下一篇: 利用python进行数据分析第二版学习笔