【python 的各种模块】(3) python的基础函数print()的用法总结

目录

1 print()函数的基本语法

1.1 print() 首先是个函数

1.2 print() 函数的语法

1.3 print() 函数的参数---简要说明

2 print() 可直接打印的各种对象

3  测试打印多个内容

4 调整多个内容的分隔符

5 调整打印结尾的符号

6 直接输出到文件?这也可以!

6.1 标准方法:使用 file.write()

6.2 使用print() 直接输入到文件

6.3 打开文件注意关闭文件句柄,防止文件始终被占用锁住!

7 上述内容整体测试代码

8 关于flush=true 缓存等

9 print()与格式化字符

10 print() 里带1个或多个变量怎么输出?

10.1 用print() 输入多个信息逗号,分隔的方法,虽然比较山寨但是也有用,就是比较繁琐

10.2 print(%s%d) 格式

10.3 或print({0}{1}) 格式

10.4 print(f"") 里直接包含变量var的格式


相比VBA的debug.print 语句,python对应的是print()函数

但是python的print()函数,强大得多,也方便得多

1 print()函数的基本语法

1.1 print() 首先是个函数

python3.0 基本都是函数用法,很少有VBA哪样的命令语句了吧?我印象里很少

1.2 print() 函数的语法


以下是 print() 函数的语法:

print(*objects, sep=' ', end='\n', file=sys.stdout, flush=False)

print(*objects, sep=' ', end='\n', file=sys.stdout, flush=False)
参数

  • objects – 复数,表示可以一次输出多个对象。输出多个对象时,需要用 , 分隔。
  • sep – 用来间隔多个对象,默认值是一个空格(,分隔的)。
  • end – 用来设定以什么结尾。默认值是换行符 \n,我们可以换成其他字符串。
  • file – 要写入的文件对象。
  • flush – 输出是否被缓存通常决定于 file,但如果 flush 关键字参数为 True,流会被强制刷新。
     

1.3 print() 函数的参数---简要说明

可打印什么?

  • 可打印对象:几乎是所有python对象都可以直接打印
  • objects ,可以是1个或者多个对象时,需要用 , 分隔,打印处理逗号,打印结果里,内容之间分割默认显示为一个空格""

分隔符

  • sep – 用来间隔多个对象,默认值是一个空格,可修改。
  • 都是分隔多个对象的逗号,对应的符号,默认是1个空格,可修改

句尾符

  • end – 用来设定以什么结尾。默认值是换行符 \n,我们可以换成其他字符串。

要直接写入的文件对象

  • file – 要写入的文件对象,需要是py可以处理的文件对象即可。

是否强制刷新:

  • flush – 输出是否被缓存通常决定于 file,True流会被强制刷新,表现为每次输出都会刷新一次。

2 print() 可直接打印的各种对象

可打印对象:几乎是所有python对象都可以直接打印,比VBA方便很多

  • 可以直接打印内容
  1. 数字,int
  2. 字符串 string
  3. 变量等,var
  • 还可以直接打印(不需要像VBA那样先写遍历,而可以整体打印数组内容!)
  1. 数组 list
  2. 元组 tuple
  3. 字典 dictionary
print("runoob")  # 输出字符串

print(100)            # 输出数字

str = 'runoob'
print(str)            # 输出变量

L = [1,2,'a']         # 列表 
print(L)  

t = (1,2,'a')         # 元组
print(t)  

d = {'a':1, 'b':2}    # 字典
print(d)  

3  测试打印多个内容

  • 打印多个内容,都需要逗号,分隔
  • 但是print() 多个字符串比较特别,可以直接多个字符串 print("" "") 这样打印

#用print打印数字
#记住1,print()是个函数,python不是VBA,很少有语句,基本都是函数
#记住2,print()多个内容用逗号,分隔

print(1)
print(123)
print(1,2,3)
print(3+5)
print(3-5)
print(3*5)

#逆天的脑洞想到的输出格式。。。有的可以,有的不行
#print(1 2 3)       #错误,这是数字还是字符串?都不是
print(1,"",2,"",3)  #这样的数组还有救吗?maybe
print("1 2 3")      #把数字转成字符串?就为了好看?
print(1&2&3)        #错误,VBA里&是用来连接字符串的-debug.print
print(1&1)          #但python里print用 &是逻辑关系与就是and或,按二进制位与,或者是集合交集

#用print打印字符串
print("Hello World")  

#字符串输出可以用加法和乘法
print("Hello"+"World")  
print("Hello World"*3)  

#多段字符串输出用,逗号,  或者直接多个""
print("Hello""World""你好")   #直接多个""这也可以?确实可以
print("Hello"  "World"  "你好") 
print("Hello","World")

4 调整多个内容的分隔符

  • print() 打印多个内容,默认的分隔符号是逗号, 而逗号在打印结果里默认表现就是1个空格 " "
  • 可以修改

# 多个内容用逗号分隔,但是设置不同间隔符,虽然默认是 ,=一个空格" "
print("www","baidu","com",sep=".")  
print("3","1001","10",sep="|")  
print("a","b","c",sep=",")  

5 调整打印结尾的符号

  • print() 默认结尾是换行符 "/n",但是也可以修改

# 结尾符号也可以自定义
print("床前明月光")
print("疑似地上霜")

print("床前明月光",end="/")
print("疑似地上霜",end="/")

6 直接输出到文件?这也可以!

有几种方法

  • 标准方法: file.write()
  • 直接用 :      print(内容,file=file)

6.1 标准方法:使用 file.write()

  • 常规方法
  • 先打开文件,使用 w, a等模式
  •  file.write() 等写入内容
  • 注意 file.write()本身的语法,只能1个参数

#多种写法,还可以write?平替?
with open(path1,"a") as file4:
    file4.write("床前明月光,疑似地上霜") #只能1个参数
 

6.2 使用print() 直接输入到文件

  • print() 相比 file.writ() 的优势是什么?
  • 我感觉可能是 print() 可以控制格式?比如使用 print(*,sep="",end="",file=file) 控制写入文件的格式

file3=open(path1,"a")
print("床前明月光","疑似地上霜",file=file3)
file3.close

#多种写法,也可以用with
with open(path1,"a") as file2:
    print("床前明月光","疑似地上霜",file=file2)

6.3 打开文件注意关闭文件句柄,防止文件始终被占用锁住!

  • 如果我们用open函数打开函数给了f,这里的f是文件句柄,一定要再close文件。否则就会造成文件句柄泄露
  • 或者就使用 with 打开文件的方法,不用特别去 close 文件

7 上述内容整体测试代码

前面内容整体测试的代码

#用print打印数字

print(1)
print(123)
print(1,2,3)
print(3+5)
print(3-5)
print(3*5)

#逆天的脑洞想到的输出格式。。。有的可以,有的不行
#print(1 2 3)       #错误,这是数字还是字符串?都不是
print(1,"",2,"",3)  #这样的数组还有救吗?maybe
print("1 2 3")      #把数字转成字符串?就为了好看?
print(1&2&3)        #错误,VBA里&是用来连接字符串的-debug.print
print(1&1)          #但python里print用 &是逻辑关系与就是and或,按二进制位与,或者是集合交集



#用print打印字符串
print("Hello World")  

#字符串输出可以用加法和乘法
print("Hello"+"World")  
print("Hello World"*3)  

#多段字符串输出用,逗号,  或者直接多个""
print("Hello""World""你好")   #直接多个""这也可以?确实可以
print("Hello"  "World"  "你好") 
print("Hello","World")


#用print打印变量
a = 1
b = 'OK'
print(a,b)

 

# 多个内容用逗号分隔,但是设置不同间隔符,虽然默认是 ,=一个空格" "
print("www","baidu","com",sep=".")  
print("3","1001","10",sep="|")  
print("a","b","c",sep=",")  


# 结尾符号也可以自定义
print("床前明月光")
print("疑似地上霜")

print("床前明月光",end="/")
print("疑似地上霜",end="/")

#print()直接输出到文件

path1=r"C:\Users\Administrator\Desktop\t2.txt"
#print("床前明月光","疑似地上霜",file=path1)  #错误,print()只能直接处理文件对象,而不是文件路径

#理论上应该好使,但是却不好使,奇怪?写成file1就不行,file3就行?
file3=open(path1,"a")
print("床前明月光","疑似地上霜",file=file3)
file3.close

#多种写法,可以用with
with open(path1,"a") as file2:
    print("床前明月光","疑似地上霜",file=file2)

#多种写法,还可以write?平替?
with open(path1,"a") as file4:
    file4.write("床前明月光,疑似地上霜") #只能1个参数

8 关于flush=true 缓存等

  • 输出是否被缓存通常决定于 file,经常表现为几个几个的刷新,节奏不规律
  • 但如果 flush 关键字参数为 True,流会被强制刷新。

 如下例子(有问题,执行效果不好)

import time
import os

print("---RUNOOB EXAMPLE : Loading 效果---")

print("Loading",end = "")

for i in range(10):
    os.system('cls')
    for j in range(3):
        print(".",end = '',flush = True)
        time.sleep(0.5)
     

9 print()与格式化字符

9.1 常用的通配符,特别注意 %%

  •       %s     格式化字符串
  •       %d     格式化整数
  •       %f     格式化浮点数字,可指定小数点后的精度
  •       %e     用科学计数法格式化浮点数
  •       %E     作用同%e,用科学计数法格式化浮点数
  •       %c     格式化字符及其ASCII码
  •       %u     格式化无符号整型
  •       %o     格式化无符号八进制数
  •       %x     格式化无符号十六进制数
  •       %X     格式化无符号十六进制数(大写)
  •       %p     用十六进制数格式化变量的地址
  •       %g     %f和%e的简写
  •       %G     %f 和 %E 的简写
  •       %%    '输出一个单一的'%'

9.2 注意,原始字符串 r

  • 在python里,原始字符串 r表示  rawdata的意思

10 print() 里带1个或多个变量怎么输出?

试验了4种输出带变量的方法,都好用

  • print(,,)
  • print(%s%d)
  • print({0}{1})
  • print(f"")

print("{0}这个表有{1}行{2}列".format(sh1.name,rows,columns))
print(sh1.name,"这个表有",rows,"行",columns,"列")
print(f"{sh1.name}这个表有{rows}行{columns}列")
print("%s这个表有%d行%d列"  %(sh1,rows,columns))

10.1 用print() 输入多个信息逗号,分隔的方法,虽然比较山寨但是也有用,就是比较繁琐

  • print(sh1.name,"这个表有",rows,"行",columns,"列",sep="")
  • 用逗号 ,把字符串,数字,变量分隔,拼凑成一句话,但是需要把sep设置为""不空格,否则默认为 " " 显示结果比较丑

10.2 print("%s%d" %{var1,var2}) 格式

  • print("%s这个表有%d行%d列"  %(sh1,rows,columns))
  • s% 字符串
  • d%  数字

10.3 或print("{0}{1}".format(var1,var2)) 格式

  • print("{0}这个表有{1}行{2}列".format(sh1.name,rows,columns))

10.4 print(f"{var1}{var2}") 里直接包含变量var的格式

  • f也是format,这是一种比较新也是比较简便的格式
  • print(f"{sh1.name}这个表有{rows}行{columns}列")

import xlrd
print(xlrd.__version__)

##创建wb对象,打开对应的wb表对象
wb=xlrd.open_workbook(r'C:\Users\Administrator\Desktop\2001.xls')

#获取wb对象下的,sheet对象,且是个对象数组
sheets=wb.sheets()
print(sheets)
print(len(sheets))  
print(sheets.count) #错误sheets.count <built-in method count of list object at 0x00000205AD7AE5C0>

#也可以直接去获取wb对象下的sheets对象的名字数组,这不是对象数组,而是字符串数组
sheetnames=wb.sheet_names()
print(sheetnames)

#直接获取sheet对象的.属性呢?可以么?可以,但只能是 sheet.name 没有 sheets.name
sheets=wb.sheets()
for sh in sheets:
    print(sh.name)

print()
##获取某个具体的sheet
#取wb得sheet对象数组里得某一个
sh1=wb.sheets()[0]
#根据sheet的次序去取
sh2=wb.sheet_by_index(1)
#根据具体的sheet显示名去取(EXCEL里sheet的显示名不同于程序内部的真实name或者index)
sh3=wb.sheet_by_name("sheet101")
#sh4=wb.sheet_by_name("sheet1001")   #错误sheet名会引起报错


#从wb的sheet数组里取得是对象,取得对象属性还需要用 sh1.name等
print(sh1)   
print(sh1.name) 
print(sh2)
print(sh3)

print()
##获取sheet里的内容


rows=sh1.nrows
columns=sh1.ncols   #写sh1.ncolumns报错...
print(rows)
print(columns)

print("{0}这个表有{1}行{2}列".format(sh1.name,rows,columns))
print(sh1.name,"这个表有",rows,"行",columns,"列")
print(f"{sh1.name}这个表有{rows}行{columns}列")
print("%s这个表有%d行%d列"  %(sh1,rows,columns))

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值