zoukankan      html  css  js  c++  java
  • python变量不能以数字打头

    在编写python函数时,无意中发现一个问题:python中的变量不能以数字打头,以下函数中定义了一个变量3_num_varchar,执行时报错。

    函数如下:

    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
    报错信息如下:

    >>> 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:Python33libsite-packagesspyderlibwidgetsexternalshellsitecustomize.py", line 699, in runfile
        execfile(filename, namespace)
      File "D:Python33libsite-packagesspyderlibwidgetsexternalshellsitecustomize.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))

    运行结果:

    >>> runfile('E:/procedure/python/projects/others/table_test.py', wdir='E:/procedure/python/projects/others')
    The feild type is not varchar
    ['aaa', 'varchar(10)']

  • 相关阅读:
    Linux常用命令-centos
    USACO 2006 Open, Problem. The Country Fair 动态规划
    USACO 2007 March Contest, Silver Problem 1. Cow Traffic
    USACO 2007 December Contest, Silver Problem 2. Building Roads Kruskal最小生成树算法
    USACO 2015 February Contest, Silver Problem 3. Superbull Prim最小生成树算法
    LG-P2804 神秘数字/LG-P1196 火柴排队 归并排序, 逆序对
    数据结构 并查集
    浴谷国庆集训 对拍
    1999 NOIP 回文数
    2010 NOIP 普及组 第3题 导弹拦截
  • 原文地址:https://www.cnblogs.com/herozhao/p/5643877.html
Copyright © 2011-2022 走看看