本章介绍主题:标准输入和输出
字符串格式化
发送电子邮件
8.1 标准输入和输出
stdin 系统标准输入,stdout 系统标准输出,都是类似文件的对象,可以进行读写。在交互式会话或命令行中运行程序时,stdin 表示用户输入,stdout 表示用户的终端。stdout 作为表达式和 print() 函数的输出,也作为 input 函数的输入提示。
#example
import sys
print("Enter number1: ")
a = int(sys.stdin.readline())
print("Enter number2: ")
b = int(sys.stdin.readline())
c = a + b
sys.stdout.write("Result: %d" % c)
input 函数获取输入, print 函数打印输出,input 可以显示输入提示。
#example
a = int(input("Enter number1:"))
b = int(input("Enter number2:"))
c = a + b
print("Result: %d" % c)
8.2 字符串格式化
两种格式化的方法,string 类的 format 方法和 % 运算符(从 Python3.6 起引入了一种新的方式叫做 f-string,就是字符串插值)。
foramt 格式化
#example
print("first: {}, second: {}".format(1, 2)) # 按序
print("second: {1}, first: {0}".format(1, 2)) # 不按序
format 的 {} 中还可以进行对齐,宽度等设置。
% 运算符:
%d 整数,%s 字符串,%f 浮点数,%c 字符
#example
print("%d + %d = %d" % (1, 2, 3))
8.3 发送电子邮件
smtplib模块用来发送SMTP 协议的邮件
#example
import smtplib
from email.mime.text import MIMEText
import getpass
hostname = "smtp.xxx.com"
port = 465
user_name = "email"
password = getpass.getpass()
sender = "sender name"
receivers = ["receiver1_email", "receiver2_email"]
text = MIMEText("Test Email")
text['Subject'] = 'Test'
text['From'] = sender
text['To'] = ', '.join(receivers)
s_obj = smtplib.SMTP_SSL(hostname, port)
s_obj.login(user_name, password)
s_obj.sendmail(sender, receivers, text.as_string())
s_obj.quit()
print('Mail sent successfully')