程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式師世界 >> 編程語言 >  >> 更多編程語言 >> Python

【Python實戰】--輸出與輸出(updating)

編輯:Python

系列文章目錄

文章目錄

  • 系列文章目錄
  • 前言
  • 一、主要函數
  • 二、NC 輸入與輸出問題
    • 1、字符串
    • 2、數字
    • 3、單行輸入為數組
    • 4、輸出形式為矩陣
    • 5、sys.stdin.readline()和input()區別
    • 6、sys.stdin.readline()和input() 輸入一行數據,以空格分割,返回list
    • 7、sys.stdin.readline()和input() 指定行數,輸入多行數據,返回二維list
    • 8、sys.stdin.readline()和input() 不指定行數,輸入多行數據,返回二維list
    • 9、sys.stdin.readline()和input() 不指定行數,但是輸入一行就處理一行,持續等待輸入
  • 三、輸入與輸出集錦
    • 1、多個字符串
    • 2、多行輸入
    • 3、未知行數,持續等待輸入
  • 總結


前言

一、主要函數

1)input() Python3.x 中 input() 函數接受一個標准輸入數據,返回為 string 類型。
2)print() 用於打印輸出,常用參數sep、end
3)print(*objects, sep=’ ‘, end=’\n’, file=sys.stdout, flush=False)

  • objects – 復數,表示可以一次輸出多個對象。輸出多個對象時,需要用 , 分隔。
  • sep – 用來間隔多個對象,默認值是一個空格。
  • end – 用來設定以什麼結尾。默認值是換行符 \n,我們可以換成其他字符串。

4)map() 根據提供的函數對指定序列做映射。返回列表或迭代器。
list() 用於將元組或字符串轉換為列表。

map(function,iterable,…)會根據提供的函數對指定序列做映射,python2.x返回列表,python3.x返回迭代器。

5)split() 通過指定分隔符對字符串進行切片,如果第二個參數 num 有指定值,則分割為 num+1 個子字符串,返回分割後的字符串列表。
6)str.split(str=“”, num=string.count(str))

  • str – 分隔符,默認為所有的空字符,包括空格、換行(\n)、制表符(\t)等。
  • num – 分割次數。默認為 -1, 即分隔所有。

7)try:可能拋出異常的語句
8)except:捕獲異常,處理異常

二、NC 輸入與輸出問題

1、字符串

單行:

import sys
line = sys.stdin.readline().strip()
print(line) # 輸出為字符串
# 用input()也一樣
line = input()
print(line) # 輸出為字符串

多行:

import sys
if __name__ == '__main__':
data = []
while True:
line = sys.stdin.readline().strip()
if not line:
break
data.append(line)
print("".join(data))
1
2
3
4
5
12345

2、數字

num = int(input())
print(num) # 輸出為數字

3、單行輸入為數組

l = list(map(int,input().split(" ")))
print(l)
輸入:
1 2 3 4
輸出:
[1, 2, 3, 4]

4、輸出形式為矩陣

import sys
if __name__ == "__main__":
data = []
while True:
line = sys.stdin.readline().strip()
if not line:
break
tmp = list(map(int,line.split(" ")))
data.append(tmp)
print(data)
1 2 2
1 2 3
1 2 4
[[1, 2, 2], [1, 2, 3], [1, 2, 4]]

5、sys.stdin.readline()和input()區別

import sys
# input()方法:
str1 = input()
print('input 輸入:',str1,'len = ',len(str1))
print('循環遍歷輸入得到輸入的每個字符的ASCII碼如下:')
for i in str1:
print(ord(i))
#sys.stdin.readline()方法:
str2 = sys.stdin.readline()
print('sys.stdin.readlien() 輸入:',str2,'len = ',len(str2))
print('循環遍歷輸入得到輸入的每個字符的ASCII碼如下:')
for i in str2:
print(ord(i))
print('換行的ASCII碼是',ord('\n'))
abc
input 輸入: abc len = 3
循環遍歷輸入得到輸入的每個字符的ASCII碼如下:
97
98
99
abc
sys.stdin.readlien() 輸入: abc
len = 4
循環遍歷輸入得到輸入的每個字符的ASCII碼如下:
97
98
99
10
換行的ASCII碼是 10

結論:如果上述代碼想要固定輸入數字,只需將input()和sys.stdin.readline()加上int()的限制,可知上面兩種輸入,sys.stdin.readline()方法會獲取每行數據的最後的換行符。

6、sys.stdin.readline()和input() 輸入一行數據,以空格分割,返回list

print('input()輸入:')
list1 = [x for x in input().split()]
print(list1)
print('sys.stdin.readline()輸入:')
import sys
list2 = [x for x in sys.stdin.readline().split()]
print(list2)
input()輸入:
a b c
['a', 'b', 'c']
sys.stdin.readline()輸入:
a b c
['a', 'b', 'c']

7、sys.stdin.readline()和input() 指定行數,輸入多行數據,返回二維list

print('請輸入數據的行數:')
N = int(input())
print('N=',N)
print('input()輸入:')
list1 = [[x for x in input().split()] for y in range(N)]
print(list1)
print('sys.stdin.readline()輸入:')
import sys
list2 = [[x for x in sys.stdin.readline().split()] for y in range(N)]
print(list2)
請輸入數據的行數:
3
N= 3
input()輸入:
1 2 3
4 5 6
7 8 9
[['1', '2', '3'], ['4', '5', '6'], ['7', '8', '9']]
sys.stdin.readline()輸入:
1 2 3
4 5 6
7 8 9
[['1', '2', '3'], ['4', '5', '6'], ['7', '8', '9']]

8、sys.stdin.readline()和input() 不指定行數,輸入多行數據,返回二維list

不指定輸入的行數,但是必須以最後下一行只輸入空格或者什麼都不輸入為結束

import sys
try:
ssn = []
while True:
sn = sys.stdin.readline().strip()
# 若是多輸入,strip()默認是以空格分隔,返回一個包含多個字符串的list
if sn == '':
break
sn = list(sn.split())
ssn.append(sn)
print(ssn)
except:
pass
import sys
try:
ssn = []
while True:
sn = input().strip()
# 若是多輸入,strip()默認是以空格分隔,返回一個包含多個字符串的list
if sn == '':
break
sn = list(sn.split())
ssn.append(sn)
print(ssn)
except:
pass
1 2 3
w e r
ss ss sss
[['1', '2', '3'], ['w', 'e', 'r'], ['ss', 'ss', 'sss']]
1 2 3
w e r
ss ss sss
[['1', '2', '3'], ['w', 'e', 'r'], ['ss', 'ss', 'sss']]

9、sys.stdin.readline()和input() 不指定行數,但是輸入一行就處理一行,持續等待輸入

import sys
try:
while True:
sn = input().strip()
#sn = sys.stdin.readline().strip()
# 若是多輸入,strip()默認是以空格分隔,返回一個包含多個字符串的list
if sn == '':
break
sn = list(sn.split())
print('此行輸入為:',sn)
except:
pass
1 2 3
此行輸入為: ['1', '2', '3']
2 2 2
此行輸入為: ['2', '2', '2']
3 4 5
此行輸入為: ['3', '4', '5']
……

三、輸入與輸出集錦

1、多個字符串

m = [i for i in input().split()]
print(m)
輸入:1,2,3,4
輸出:['1,2,3,4']
輸入:1 2 3 4
輸出:['1', '2', '3', '4']

2、多行輸入

m,n = list(map(int,input().split()))
lines = []
for _ in range(m):
lines.append(list(map(int,input().split(' '))))
#lines.append([int(x) for x in input().split()])
print(lines)
輸入:
2 3
1 1 1
1 1 1
輸出:
[[1, 1, 1], [1, 1, 1]]

3、未知行數,持續等待輸入

代碼1:

# 未知行數
res = []
while True:
try:
s = input()
res.append(list(map(int,s.split(' '))))
#res.append(s.split(' '))
except:
break

代碼2:

import sys
for line in sys.stdin:
#a = line.split()
a = list(map(int,line.split()))
print(a[0]+a[1])

該處使用的url網絡請求的數據。


總結

分享:
沉默給人以缜密的思考,清醒的意識,安定的內心,能培養一種自省的氣質。不事張揚,踏實做事,這種沉默是一種迅速成長的修煉。一個多思少說又比較深沉的人,往往才是真正的大智之人。


  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式師世界 All Rights Reserved