在编写python函数时,无意中发现一个问题:python中的变量不能以数字打头,以下函数中定义了一个变量3_num_varchar,执行时报错。
函数如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
def database_feild_varchar_trans(in_feild): ''' transfer the feild if varchar then 3times lang else no transfer ''' feild_split = in_feild.split( ' ' ) is_varchar = feild_split[ 1 ].find( 'VARCHAR' ) if is_varchar > = 0 : num_varchar = feild_split[ 1 ].replace( 'VARCHAR' ,' ').replace(' ( ',' ').replace(' ) ',' ') print (num_varchar) 3_num_varchar = num_varchar * 3 feild_split[ 1 ] = feild_split[ 1 ].replace( str (num_varchar), str ( 3_num_varchar )) return feild_split else : print ( 'The feild type is not varchar' ) return feild_split |
报错信息如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
>>> runfile( 'E:/procedure/python/projects/others/table_test.py' , wdir = 'E:/procedure/python/projects/others' ) Traceback (most recent call last): File "<stdin>" , line 1 , in <module> File "D:\Python33\lib\site-packages\spyderlib\widgets\externalshell\sitecustomize.py" , line 699 , in runfile execfile (filename, namespace) File "D:\Python33\lib\site-packages\spyderlib\widgets\externalshell\sitecustomize.py" , line 88 , in execfile exec ( compile ( open (filename, 'rb' ).read(), filename, 'exec' ), namespace) File "E:/procedure/python/projects/others/table_test.py" , line 20 3_num_varchar = int (num_varchar) * 3 ^ SyntaxError: invalid syntax 将变量 3_num_varchar 改为num_varchar_3,运行成功,程序改为如下: import os import sys str1 = 'aaa varchar(10)' def database_feild_varchar_trans(in_feild): ''' transfer the feild if varchar then 3times lang else no transfer ''' feild_split = in_feild.split( ' ' ) is_varchar = feild_split[ 1 ].find( 'VARCHAR' ) if is_varchar > = 0 : num_varchar = feild_split[ 1 ].replace( 'VARCHAR' ,' ').replace(' ( ',' ').replace(' ) ',' ') print (num_varchar) num_varchar_3 = num_varchar * 3 feild_split[ 1 ] = feild_split[ 1 ].replace( str (num_varchar), str (num_varchar_3)) return feild_split else : print ( 'The feild type is not varchar' ) return feild_split print (database_feild_varchar_trans(str1)) |
运行结果:
1
2
3
|
>>> runfile( 'E:/procedure/python/projects/others/table_test.py' , wdir = 'E:/procedure/python/projects/others' ) The feild type is not varchar [ 'aaa' , 'varchar(10)' ] |
以上这篇python变量不能以数字打头详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持服务器之家。