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