python輸入輸出函數
A. 用python寫一個函數
使用關鍵詞 def 聲明這是一個函數
1def 函數名 (參數):
2 語句塊
參數可以沒有,也可以有多個,用逗號隔開,第一行稱為函數頭,結尾一定要加冒號,代表開始進入函數體的執行。
語句塊也就是函數體,是關於這個函數要實現的功能的語句,語句要有返回值即return語句,如果沒有return語句,就代表return none.
B. python中print函數同時輸入字元串和數字,是什麼結果
print函數是輸出函數,只能輸出一個字元串
input()是輸入函數,無論獲取到的是字元還是數字,都以字元串形式輸入。
如果要輸入數字:int(input('enter a num:'))
C. 在Python函數中使用關鍵字參數時,怎樣按輸入的順序輸出
**kwargs 是一個 Dictionary. Dictionary 是無序的。
要想輸出有序,可以想一個排序的key函數,使你對 kwargs 的排序與輸入時的順序一致。
一種方法是直接把變數名按字母表順序寫進去,不過這樣輸入的順序就固定了,我覺得不是你想要的。
還有一種方法如下,需要你在寫參數時另外加一個由其他參數名稱組成的 tuple。這個 Tuple 中元素的順序就是你輸入參數的順序。
def test(**kwargs):
order = kwargs.get('order_list','')
if order:
sorted_keys = sorted([x for x in kwargs if x != 'order_list'],key=order.index)
for key in sorted_keys:
print '{0} = {1}'.format(key,kwargs[key])
else:
for key in kwargs:
print '{0} = {1}'.format(key,kwargs[key])
test(a=3,b=3,g=0,v=99,order_list=('a','b','g','v'))
D. python 如何讓一個函數的輸出寫入到一個文件中
首先導入sys模塊
import sys
然後在打算把輸出數據寫入文件的代碼之前加上以下代碼
output=sys.stdout
outputfile=open(filename,'w')
sys.stdout=outputfile
上面的filename表示輸出文件
程序結束或恢復成正常輸出時加上以下代碼
outputfile.close()
sys.stdout=output
恢復輸出為開始保存的正常輸出值
E. python中怎麼輸入輸出文件
1.打開和關閉文件(open(),file(),close())
有兩種內建函數可以獲取文件對象:open和file。他們的用法完全一樣。下面只以open()為例子講解。獲取一個文件對象(打開文件)的語法如下:
復制代碼 代碼如下:fileObj = open(filename,access_mode='r',buffering=-1)
filename不用說你也應該知道是你要打開文件的路徑。
access_mode用來標識文件打開的模式,默認為r(只讀)。
常用的模式如下表所示:
文件模式 解釋
r 以只讀方式打開
w 以寫方式打開,文件不為空時清空文件;文件不存在時新建文件。
a 追加模式,沒有則創建
r+,w+,a+ 以讀寫模式打開,參見w,a
另外還有一個b表示二進制模式訪問,但是對於Linux或者unix系統來說這個模式沒有任何意義,因為他們把所有文件都看作二進制文件,包括文本文件。
第三個參數不經常用到,標識訪問文件的緩沖方式,0代表不緩沖,1代表緩
沖一行,-1代表使用系統默認緩沖方式。只要使用系統默認就好。
一些例子:
復制代碼 代碼如下:
>>> f = open('/etc/passwd','r')
>>> f1 = open('/etc/test','w')
使用完文件後,一定要記得關閉文件,操作如下:
復制代碼 代碼如下:
>>> f.close()
2.文件讀入
2.1.file.read(size = -1)
讀取從當前文件游標起size個位元組的文件內容。如果size=-1,則讀取所有剩餘位元組。
復制代碼 代碼如下:
>>> f = open('/etc/passwd')
>>> f.read(100)
'root:x:0:0:root:/root:/bin/bash\nbin:x:1:1:bin:/bin:/sbin/nologin\ndaemon:x:2:2:daemon:/sbin:/sbin/nol'
2.2.file.readlines(size=-1)
從文件中讀取並返回一行(包括行結束符),或返回最大size個字元
復制代碼 代碼如下:
>>> f.readline()
'ogin\n'#和上面一個例子輸出的最後拼起來就是 'nologin',因為游標在l後面。
>>> f.readline(1)
'a'
2.3.file.readlines(sint=0)
讀取文件所有的行,並作為一個列表返回(包括行結束符),如果sint>0則返回總和大約sint位元組的行(具體由緩沖區大小決定)。
復制代碼 代碼如下:
f.readlines()
['dm:x:3:4:adm:/var/adm:/sbin/nologin\n', 'lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin\n', 'sync:x:5:0:sync:/sbin:/bin/sync\n', 'shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown\n', 'halt:x:7:0:halt:/sbin:/sbin/halt\n', 'mail:x:8:12:mail:/var/spool/mail:/sbin/nologin\n', ......
輸出省略。
3.文件輸出
3.1.file.write(str)
向文件中寫入指定的字元串。
復制代碼 代碼如下:
>>> f = file('/root/test.py','w+')
>>> f.write("print 'hello,world'")
>>> f.read()
''
>>> f.close()
>>> file('/root/test.py','r').read()
"print 'hello,world'"
3.2.file.write(seq)
向文件寫入字元串序列seq。seq是任何返回字元串的可迭代對象。
復制代碼 代碼如下:
>>> f = file('/root/test.py','a+')
>>> codelst = ['\n','import os\n',"os.popen('ls').read()\n"]
>>> f.writelines(codelst)
>>> f.close()
>>> file('/root/test.py','r').read()
"print 'hello,world'\nimport os\nos.popen('ls').read()\n"
注意,文件寫入的時候,不會自動加上換行符,必須手動加上。
F. Python中如何獲取輸入框Entry輸入的內容並輸出
fromTkinterimport*
var=StringVar()
root=Tk()
Entry(root,textvariable=var)#設置輸入框對應的文本變數內為var
print(var.get())#var.get()獲取輸入框的內容容
root.mainloop()
G. python中函數輸出怎麼使用
print函數是python語言中的一來個自輸出函數,可以輸出以下幾種內容
1. 字元串和數值類型 可以直接輸出
>>>print(1)
1
>>>print("HelloWorld")
HelloWorld
2.變數
無論什麼類型,數值,布爾,列表,字典...都可以直接輸出
>>>x=12
>>>print(x)
12
>>>s='Hello'
>>>print(s)
Hello
>>>L=[1,2,'a']
>>>print(L)
[1,2,'a']
>>>t=(1,2,'a')
>>>print(t)
(1,2,'a')
>>>d={'a':1,'b':2}
>>>print(d)
{'a':1,'b':2}
3.格式化輸出
類似於C中的 printf
>>>s
'Hello'
>>>x=len(s)
>>>print("Thelengthof%sis%d"%(s,x))
ThelengthofHellois5
【注意】
Python2和3的print函數格式不同,3要求加括弧(print())
縮進最好使用4個空格
H. Python用print()函數輸出田字格
Python用print()函數輸出田字格示例代碼如下:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# Python用print()函數輸出田字格
row = ''
for i in range(1, 12):
for j in range(1, 12):
if i in (1, 6, 11):
if j in (1, 6, 11):
row = row + '+' + ' '
else:
row = row + '--' + ' '
else:
if j in (1, 6, 11):
row = row + '|' + ' '
else:
row = row + ' ' + ' '
row = row + ' '
print row
運行程序,輸出結果為田字格。
(8)python輸入輸出函數擴展閱讀
python輸出田字格程序重點是運用多條件循環語句和for循環語句
1、當判斷條件為多個值時,可以使用以下形式:
if 判斷條件1:
執行語句1……
elif 判斷條件2:
執行語句2……
elif 判斷條件3:
執行語句3……
else:
執行語句4……
2、for循環的語法格式如下:
for iterating_var in sequence:
statements(s)
I. 在python下輸入運算表達式,輸出運算結果。
#-*-coding:utf-8-*-
binaryDic={'+':float.__add__,
'-':float.__sub__,
'*':float.__mul__,
'/':float.__truediv__,
'%':float.__mod__,
'**':float.__pow__,}
unaryDic={'-':float.__neg__,
'+':float.__pos__,}
priorDic=dict((('**',3),('*',2),('/',2),('%',2),('+',1),('-',1)))
defis_float(s):
'判斷是否浮點數字元'
returns.isdigit()ors=='.'
defis_prior(firOpf,secOpf):
'判斷運算符的優先順序'
ifsecOpf=='**':
returnFalse
returnpriorDic[firOpf]>=priorDic[secOpf]
defwipe_brace(s,start=0):
's是以左括弧開頭的字元串'
'此函數將消去括弧,求出括弧內的值,並返回剩餘字元'
pos=s.find(')',start)
ifs[1:pos].count('(')==s[1:pos].count(')'):
returns[pos+1:],ieval(s[1:pos])
returnwipe_brace(s,pos+1)
defget_Longest_number(s,num=''):
's是以左括弧或數字開頭的字元串'
'返回s首位開始的最長連續數字串和剩餘字元串'
ifnots:
returns,num
ifs[0]=='(':
returnwipe_brace(s)
ifis_float(s[0]):
returnget_Longest_number(s[1:],num+s[0])
returns,num
defget_val(fir='',opf='',sec=''):
'智能求值函數.能進行一元,二元或純值運算'
ifopf:
ifsec:
returnstr(binaryDic[opf](float(fir),float(sec)))
returnstr(unaryDic[opf](float(fir)))
returnfir
defget_safeSec(s,cmpOpf='**',neg='',safeSec='',):
'比較s的第一個二元運算符和cmpOpf的優先順序'
'以便獲得安全的第二個值'
ifnots:
returns,get_val(safeSec,neg)
ifnotsafeSec:
ifs[0]=='+':
returnget_safeSec(s[1:],cmpOpf,neg)
ifs[0]=='-':
returnget_safeSec(s[1:],cmpOpf,''ifneg=='-'else'-')
ifis_float(s[0])ors[0]=='(':
rest,safeSec=get_Longest_number(s)
returnget_safeSec(rest,cmpOpf,neg,safeSec)
opfNum=2ifs[:2]=='**'else1
ifis_prior(cmpOpf,s[:opfNum]):
returns,get_val(safeSec,neg)
rest,safeNum=get_safeSec(s[opfNum:],s[:opfNum])
returnget_safeSec(rest,cmpOpf,neg,get_val(safeSec,s[:opfNum],safeNum))
defieval(s='',fir='',opf='',sec=''):
'控制整個解析流程'
ifnots:
returnget_val(fir,opf,sec)
ifnotfir:
ifs[0]=='-':
returnieval(s[1:],fir,''ifopf=='-'else'-')
ifs[0]=='+':
returnieval(s[1:],fir,opf)
ifis_float(s[0])ors[0]=='(':
returnieval(*get_Longest_number(s),opf=opf)
ifnotsec:
ifnotopf:
opfNum=2ifs[:2]=='**'else1
rest,sec=get_safeSec(s[opfNum:],s[:opfNum])
returnieval(rest,fir,s[:opfNum],sec)
ifs[:2]!='**':
returnieval(s,get_val(fir,opf))
rest,sec=get_safeSec(s[2:])
returnieval(rest,get_val(fir,'**',sec),opf)
returnieval(s,get_val(fir,opf,sec))
if__name__=='__main__':
test=['1+2*3*4*5+20',
'1+2*3',
'1.1+20.02+300.003',
'-2**2',
'(-2)**2',
'1+2*3**-2**(2-3)*2',
'-2**-2**-2**-2',
'(1+2)*(2+3)/(1-3)',
'((9+3)/2)',
'((1234)-1)',
'1-3*--+++-2**--+++((-2))**--+++-(1-2)**--+++-2*2+1*2**6%9',
'((1+3*(-2)**2)*((2%3+((3+3)*2**3+1))*(1-3)*(1+2)+5*6)*4)']
forxintest:
print(ieval(x),'___',eval(x))
結果:
>>>
141.0___141
7.0___7
321.123___321.123
-4.0___-4
4.0___4
3.309401076758503___3.309401076758503
-0.5582965649524321___-0.5582965649524321
-7.5___-7.5
6.0___6.0
1233.0___1233
6.242640687119286___6.242640687119286
-14352.0___-14352
J. 如何使用python定義一個函數,輸出自己的姓名和年齡,要求從鍵盤獲取這兩個參數的值
defPrintNameAge(a,b):
print('姓名'+a)
print('年齡'+b)
return
a=input()
b=input()
PrintNameAge(a,b)