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高级篇--Linux防火墙
    一、华为模拟器eNSP下载与安装教程
    中继器,集线器,网桥,交换机,路由器有什么区别?//联网用到的硬件简介
    Web前端调试技巧
    疯狂HTML5-CSS3-JavaScript讲义-光盘源码-李刚
    HTML5从入门到精通-电子书和随书光盘
    案例学Web前端开发-电子书和随书光盘
    [转]OpenLayer4地图全屏的实现
    网页开发中使用javascript语言时浏览器操作时弹出错误:Uncaught TypeError: Cannot set property 'onClick' of null。
    java.lang.ClassCastException: org.apache.hadoop.io.Text cannot be cast to org.apache.h...
  • 原文地址:https://www.cnblogs.com/herozhao/p/5643877.html
Copyright © 2011-2022 走看看