当前位置:   article > 正文

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

vba 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
  1. print("runoob") # 输出字符串
  2. print(100) # 输出数字
  3. str = 'runoob'
  4. print(str) # 输出变量
  5. L = [1,2,'a'] # 列表
  6. print(L)
  7. t = (1,2,'a') # 元组
  8. print(t)
  9. d = {'a':1, 'b':2} # 字典
  10. 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 上述内容整体测试代码

前面内容整体测试的代码

  1. #用print打印数字
  2. print(1)
  3. print(123)
  4. print(1,2,3)
  5. print(3+5)
  6. print(3-5)
  7. print(3*5)
  8. #逆天的脑洞想到的输出格式。。。有的可以,有的不行
  9. #print(1 2 3) #错误,这是数字还是字符串?都不是
  10. print(1,"",2,"",3) #这样的数组还有救吗?maybe
  11. print("1 2 3") #把数字转成字符串?就为了好看?
  12. print(1&2&3) #错误,VBA里&是用来连接字符串的-debug.print
  13. print(1&1) #但python里print用 &是逻辑关系与就是and或,按二进制位与,或者是集合交集
  14. #用print打印字符串
  15. print("Hello World")
  16. #字符串输出可以用加法和乘法
  17. print("Hello"+"World")
  18. print("Hello World"*3)
  19. #多段字符串输出用,逗号, 或者直接多个""
  20. print("Hello""World""你好") #直接多个""这也可以?确实可以
  21. print("Hello" "World" "你好")
  22. print("Hello","World")
  23. #用print打印变量
  24. a = 1
  25. b = 'OK'
  26. print(a,b)
  27. # 多个内容用逗号分隔,但是设置不同间隔符,虽然默认是 ,=一个空格" "
  28. print("www","baidu","com",sep=".")
  29. print("3","1001","10",sep="|")
  30. print("a","b","c",sep=",")
  31. # 结尾符号也可以自定义
  32. print("床前明月光")
  33. print("疑似地上霜")
  34. print("床前明月光",end="/")
  35. print("疑似地上霜",end="/")
  36. #print()直接输出到文件
  37. path1=r"C:\Users\Administrator\Desktop\t2.txt"
  38. #print("床前明月光","疑似地上霜",file=path1) #错误,print()只能直接处理文件对象,而不是文件路径
  39. #理论上应该好使,但是却不好使,奇怪?写成file1就不行,file3就行?
  40. file3=open(path1,"a")
  41. print("床前明月光","疑似地上霜",file=file3)
  42. file3.close
  43. #多种写法,可以用with
  44. with open(path1,"a") as file2:
  45. print("床前明月光","疑似地上霜",file=file2)
  46. #多种写法,还可以write?平替?
  47. with open(path1,"a") as file4:
  48. file4.write("床前明月光,疑似地上霜") #只能1个参数

8 关于flush=true 缓存等

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

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

  1. import time
  2. import os
  3. print("---RUNOOB EXAMPLE : Loading 效果---")
  4. print("Loading",end = "")
  5. for i in range(10):
  6. os.system('cls')
  7. for j in range(3):
  8. print(".",end = '',flush = True)
  9. 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}列")

  1. import xlrd
  2. print(xlrd.__version__)
  3. ##创建wb对象,打开对应的wb表对象
  4. wb=xlrd.open_workbook(r'C:\Users\Administrator\Desktop\2001.xls')
  5. #获取wb对象下的,sheet对象,且是个对象数组
  6. sheets=wb.sheets()
  7. print(sheets)
  8. print(len(sheets))
  9. print(sheets.count) #错误sheets.count <built-in method count of list object at 0x00000205AD7AE5C0>
  10. #也可以直接去获取wb对象下的sheets对象的名字数组,这不是对象数组,而是字符串数组
  11. sheetnames=wb.sheet_names()
  12. print(sheetnames)
  13. #直接获取sheet对象的.属性呢?可以么?可以,但只能是 sheet.name 没有 sheets.name
  14. sheets=wb.sheets()
  15. for sh in sheets:
  16. print(sh.name)
  17. print()
  18. ##获取某个具体的sheet
  19. #取wb得sheet对象数组里得某一个
  20. sh1=wb.sheets()[0]
  21. #根据sheet的次序去取
  22. sh2=wb.sheet_by_index(1)
  23. #根据具体的sheet显示名去取(EXCEL里sheet的显示名不同于程序内部的真实name或者index)
  24. sh3=wb.sheet_by_name("sheet101")
  25. #sh4=wb.sheet_by_name("sheet1001") #错误sheet名会引起报错
  26. #从wb的sheet数组里取得是对象,取得对象属性还需要用 sh1.name等
  27. print(sh1)
  28. print(sh1.name)
  29. print(sh2)
  30. print(sh3)
  31. print()
  32. ##获取sheet里的内容
  33. rows=sh1.nrows
  34. columns=sh1.ncols #写sh1.ncolumns报错...
  35. print(rows)
  36. print(columns)
  37. print("{0}这个表有{1}行{2}列".format(sh1.name,rows,columns))
  38. print(sh1.name,"这个表有",rows,"行",columns,"列")
  39. print(f"{sh1.name}这个表有{rows}{columns}列")
  40. print("%s这个表有%d行%d列" %(sh1,rows,columns))

本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号