print(f" ")或print(f’ ')用法
用法示例
print(f'.....')
注意:f后面一定要紧跟字符串,不能隔有空格,否则会报错
print语句中加入f就可以起到和format函数类似的作用。
a = 1
b = 2
c = 3
print(f'a={a}, b={b}, c={c}')
# 等价于print('a={}, b={}, c={}'.format(a, b, c))
结果:
a=1, b=2, c=3
可以看出printf的语法特别清楚,他比较器format的用法更加清晰,因为format还需要前后将括号对号入座,而printf中的括号可以直观地直接看的里面的值是什么。
{:.nf}
控制小数点位数
import numpy as np
a = np.sqrt(2)
b = np.sqrt(3)
c = np.sqrt(5)
print(f'a={a:.1f}, b={b:.2f}, c={c:.3f}')
# 等效于print('a={:.1f}, b={:.2f}, c={:.3f}'.format(a, b, c))
结果
a=1.4, b=1.73, c=2.236
# 分别保留1位,两位,三位小数
{:.nf}
,其中n代表着保留几位小数,上面的例子一目了然
这里可以看到,printf比format的优势更明显了,括号里一目了然
中文字体编码问题
运行程序时,python出现 “SyntaxError: Non-ASCII character ‘\xe5’ in file”
错误,信息中给出了一个网址可以查看详细信息;
错误提示:
SyntaxError: Non-ASCII character '\xe5' in file E:/python_test/task02/image_play.py on line 18, but no encoding declared; see http://python.org/dev/peps/pep-0263/ for details
解决办法:
在该程序的第一行(注意:必须是最上面一行),添加一下代码
# -*- coding: utf-8 -*-
即可解决问题;
错误原因:
程序注释中出现了中文字体,因为Python默认的以ASCII作为编码方式。在程序第一行加入*# – coding: utf-8 --* 后,则指定文件的编码格式是utf-8。
python含有括号的三种数据类型
1.小括号()
代表tuple元祖数据类型,元祖是一种不可变序列。创建方法很简单,大多数时候都是小括号括起来的,例如:
tup1=(‘张三’,‘lisi’,‘wangwu’)
tup2=(1,2,3,4,5)
2.中括号[]
代表list列表数据类型,列表是一种可变序列,序列中的每个元素都分配一个数字 - 它的位置,或索引,第一个索引是0,第二个索引是1,依此类推。
list1 = ['张三', 'lisi', 1997, 2000]
list2 = [1, 2, 3, 4, 5, 6, 7 ]
print "list1[0]: ", list1[0]
print "list2[1:5]: ", list2[1:5]
输出结果:
list1[0]: 张三
list2[1:5]: [2, 3, 4, 5]
3.大括号{ }
代表dict字典数据类型,字典是Python中唯一内建的映射类型。字典中的值没有特殊的顺序,但都是存储在一个特定的键(key)下。键可以是数字、字符串甚至是元祖。
字典的每个键值 key=>value 对用冒号 : 分割,每个键值对之间用逗号 , 分割,整个字典包括在花括号 {} 中
d = {key1 : value1, key2 : value2 }
dict={'name':'zhangsan','age':16,'sex':'男'}
print "name:", dict['name']
print "age:", dict['age']
输出结果:
name: zhangsan
age: 16
join()函数用法及示例
string.join()
Python中有join()和os.path.join()两个函数,具体作用如下:
join():连接字符串数组。将字符串、元组、列表中的元素以指定的字符(分隔符)连接生成一个新的字符串
os.path.join():将多个路径组合后返回
函数说明
1、join()
函数
语法: 'sep'.join(seq)
参数说明
sep:分隔符。可以为空
seq:要连接的元素序列、字符串、元组、字典
上面的语法即:以sep作为分隔符,将seq所有的元素合并成一个新的字符串
返回值:返回一个以分隔符sep连接各个元素后生成的字符串
2、os.path.join()
函数
语法:
os.path.join(path1[,path2[,......]])
返回值:将多个路径组合后返回
注:第一个绝对路径之前的参数将被忽略
format()函数用法及示例
语法:
'{}'.format()
用法:
用于格式化字符串。可以接受无限个参数,可以指定顺序。返回结果为字符串。
tensor【:,1:3】
for i in range(start, stop, step)
起始、终止和步长
只有一个数字时,从0开始,不包含n
np.newaxis
np.newaxis的作用就是在这一位置增加一个一维
array=np.random.rand(3,4)
array
输出为:
array([[0.8673345 , 0.87058519, 0.20251628, 0.72928923],
[0.4078268 , 0.6191882 , 0.97035328, 0.82620661],
[0.42866612, 0.22471408, 0.96583487, 0.0179457 ]])
x[:, np.newaxis]
,放在后面,会给列上增加维度
x[np.newaxis, :]
,放在前面,会给行上增加维度
x = np.array([1, 2, 3, 4])
print(x.shape)
x_add = x[:, np.newaxis]
print(x_add.shape)
print(x_add)
>>>
(4,)
(4, 1)
[[1]
[2]
[3]
[4]]
x = np.array([1, 2, 3, 4])
print(x.shape)
x_add = x[np.newaxis, :]
print(x_add.shape)
print(x_add)
>>>
(4,)
(1, 4)
[[1 2 3 4]]
import numpy as np
array=np.random.rand(3,4)
array_axis=array[:, :, np.newaxis]
print(array_axis)
array_axis1=array[:, np.newaxis]
print(array_axis1)
array_axis2=array[np.newaxis, :]
print(array_axis2)
# 结果为
[[[0.37888054]
[0.57239666]
[0.38121331]
[0.44547055]]
[[0.64875591]
[0.05572523]
[0.13718685]
[0.82628257]]
[[0.75134509]
[0.5801305 ]
[0.25344827]
[0.53498568]]]
[[[0.37888054 0.57239666 0.38121331 0.44547055]]
[[0.64875591 0.05572523 0.13718685 0.82628257]]
[[0.75134509 0.5801305 0.25344827 0.53498568]]]
[[[0.37888054 0.57239666 0.38121331 0.44547055]
[0.64875591 0.05572523 0.13718685 0.82628257]
[0.75134509 0.5801305 0.25344827 0.53498568]]]
可以看做reshape()
,对于原shape(a, b)
,np.newaxis
处可看做1,分为(1, a, b)、(a, 1, b)、(a, b, 1)
三种情况,分别对应array[np.newaxis, :]
,[:, np.newaxis]
和[:, :, np.newaxis]
concat()函数
将多个字符串连接成一个字符串