在编写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:\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))

运行结果:

>>> 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变量不能以数字打头的更多相关文章

  1. C 语言中的变量为什么不能以数字打头

    C 语言中的变量为什么不能以数字打头? C 语言中的变量为什么不能以数字打头? 不要告诉我编译原理书上有.我暂时看不懂. 除了下面的解释外, “假如变量名允许以数字开头的话,那么语法分析器在解析一个全 ...

  2. 每天学一点——python变量、常量与数字类型

    python变量.常量与数字类型 常量 (一句话能概括先讲它) 严格来讲,python中除了π与N就没有不变的量 所以,在python中我们识别常量是看它是否全大写(如下图) 变量 变量,顾名思义,就 ...

  3. python变量命名规则

    在Python中使用变量时,需要遵守一些规则和指南.违反这些规则将引发错误,而指南旨在让你编写的代码更容易阅读和理解.请务必牢记下述有关变量的规则.  变量名只能包含字母.数字和下划线.变量名可以字 ...

  4. python变量和简单的数据类型

    1.运行hello_world.py时发生的情况 运行hello_world.py时,Python都做了些什么呢?实际上,即便是运行简单的程序,Python所做的工作也相当多: #!/usr/bin/ ...

  5. python变量声明及简单数据类型

    一.python声明变量 变量的命名和使用 # 在Python中使用变量时,需要遵守一些规则和指南. # 违反这些规则将引发错误,而指南旨在让你编写的代码更容易阅读和理解.请务必牢记下述有关变量的规则 ...

  6. Python 变量类型

    Python 变量类型 变量存储在内存中的值.这就意味着在创建变量时会在内存中开辟一个空间. 基于变量的数据类型,解释器会分配指定内存,并决定什么数据可以被存储在内存中. 因此,变量可以指定不同的数据 ...

  7. Python基础3- 变量与数字

    1.Python变量不需要声明,其赋值操作既是变量声明和定义的过程;2.Python中每个变量在使用前都必须赋值,变量赋值后该变量才会被创建;3.Python变量是存储内存中的值,若变量赋值时内存中存 ...

  8. Python变量、数据类型6

    1.Python变量 变量,即代表某个value的名字. 变量的值存储在内存中,这意味着在创建变量时会在内存中开辟一个空间. !!!即值并没有保存在变量中,它们保存在计算机内存的深处,被变量引用.所以 ...

  9. Python变量类型

    Python变量类型 变量是存储在内存中的值,因此在创建变量时会在内存中开辟一个空间. 基于变量的数据类型,解释器会分配指定的内存,并决定什么数据可以被存储在内存中. 因此变量可以指定不同的数据类型, ...

随机推荐

  1. angularjs post 跨域

    web api搞好了:用Ajax妥妥的:但是前端用的AngulagJS,也懒得再换为Ajax了: 但是问题来了:提示: 已拦截跨源请求:同源策略禁止读取位于 http://x.x.x.x:port/a ...

  2. 传统IO与NIO的比较

    本文并非Java.io或Java.nio的使用手册,也不是如何使用Java.io与Java.nio的技术文档.这里只是尝试比较这两个包,用最简单的方式突出它们的区别和各自的特性.Java.nio提出了 ...

  3. C# SQL 整表插入 分类: C# 2014-09-17 16:18 369人阅读 评论(2) 收藏

    说明: (1)表A的一部分数据插入到表B (2)DataAccess 类,是放在DAL层下的底层类; da.StrConnection 写在DataAccess类中; //整表插入方法 private ...

  4. 史上最简单的带流控功能的http server

    s.py import time import SimpleHTTPServer import SocketServer BYTES_PER_SECOND=160*1024 class MyHTTPR ...

  5. POJ 3094 Quicksum(简单的问题)

    [简要题意]:题意是非常easy. 看样能理解 [分析]:略. 读取字符串. // 200K 0Ms #include<iostream> using namespace std; int ...

  6. iOS 数据持久化(1):属性列表与对象归档

    @import url(http://i.cnblogs.com/Load.ashx?type=style&file=SyntaxHighlighter.css); @import url(/ ...

  7. Java(Android)线程池 总结

        JAVA的Executors源码:(可以看出底层都是通过ThreadPoolExecutor来具体设置的~) public static ExecutorService newCachedTh ...

  8. Python CMDB开发

    Python CMDB开发   运维自动化路线: cmdb的开发需要包含三部分功能: 采集硬件数据 API 页面管理 执行流程:服务器的客户端采集硬件数据,然后将硬件信息发送到API,API负责将获取 ...

  9. JS实现一键复制功能

    var copyClick = function (d) { var Url2 = $(d).parent().parent().find("#copy_value"); Url2 ...

  10. Java_Activiti5_菜鸟也来学Activiti5工作流_之初识BPMN2.0的简单结构(五)

    <?xml version="1.0" encoding="UTF-8"?> <definitions xmlns="http:// ...