K
Kyle Root
I'm writing a little program that compares two versions and tells you
whether you are upgrading, downgrading, or it's the same version.
Unfortunately, I haven't gotten very far, in fact I'm at a dead stop.
I need to make a variable in function available outside the function, so
I used "global", however now the program won't run and gives me the not
so friendly error:
bash-2.05b$ ./version.py
File "./version.py", line 11
def make_acceptable(version):
SyntaxError: name 'version' is local and global
-------------------------
I've looked and searched all over. Here's the code in case anyone can
spot the problem.
-------------------------
#!/usr/bin/python
import string
import sys
# This'll be replaced by an arg catching function, but for now this will
be fine
db_version="2.6.0"
pkg_version="2.6.6"
# We don't allow versions that have anything else besides digits and periods
acceptable_chars = "1234567890."
max_count = len(pkg_version)-1
def make_acceptable(version):
counter = 0
while 1 == 1:
one_char = version[(counter)counter + 1)]
if one_char in acceptable_chars:
if counter == max_count:
# Now we need to replace the periods with zeros.
version = version.replace(".","0")
global version
break
elif counter != max_count:
counter = counter + 1
elif one_char not in acceptable_chars:
print "EXITING: Versions may only contain digits and periods"
sys.exit()
make_acceptable(db_version)
db_version = version
print db_version
make_acceptable(pkg_version)
pkg_version = version
print pkg_version
whether you are upgrading, downgrading, or it's the same version.
Unfortunately, I haven't gotten very far, in fact I'm at a dead stop.
I need to make a variable in function available outside the function, so
I used "global", however now the program won't run and gives me the not
so friendly error:
bash-2.05b$ ./version.py
File "./version.py", line 11
def make_acceptable(version):
SyntaxError: name 'version' is local and global
-------------------------
I've looked and searched all over. Here's the code in case anyone can
spot the problem.
-------------------------
#!/usr/bin/python
import string
import sys
# This'll be replaced by an arg catching function, but for now this will
be fine
db_version="2.6.0"
pkg_version="2.6.6"
# We don't allow versions that have anything else besides digits and periods
acceptable_chars = "1234567890."
max_count = len(pkg_version)-1
def make_acceptable(version):
counter = 0
while 1 == 1:
one_char = version[(counter)counter + 1)]
if one_char in acceptable_chars:
if counter == max_count:
# Now we need to replace the periods with zeros.
version = version.replace(".","0")
global version
break
elif counter != max_count:
counter = counter + 1
elif one_char not in acceptable_chars:
print "EXITING: Versions may only contain digits and periods"
sys.exit()
make_acceptable(db_version)
db_version = version
print db_version
make_acceptable(pkg_version)
pkg_version = version
print pkg_version