Python3 语法及知识点总结(实时更新)

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()函数

将多个字符串连接成一个字符串

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值