Quick questions about globals and database connections

Jussi Piitulainen jussi.piitulainen at helsinki.fi
Thu Apr 6 23:54:29 EDT 2017


DFS <nospam at dfs.com> writes:

> On 4/6/2017 10:54 AM, Python wrote:
>> Le 06/04/2017 à 16:46, DFS a écrit :
>>> On 4/5/2017 10:52 PM, Dan Sommers wrote:
>>>> On Wed, 05 Apr 2017 22:00:46 -0400, DFS wrote:
>>>>
>>>>> I have a simple hard-coded check in place before even trying to
>>>>> connect:
>>>>>
>>>>> if dbtype not in ('sqlite postgres'):
>>>>>    print "db type must be sqlite or postgres"
>>>>>    exit()
>>>>
>>>> That's not doing what you think it is.
>>>>
>>>> Hint:  What is ('sqlite postgres')?
>>>
>>> ?
>>>
>>> dbtype is a string, and the check works perfectly.  No typos make it
>>> past the guard.
>>
>> except that it would be True for dbtype = 'lite post' or dbtype = 'stgr'
>
>
> Except before I even get there I have another checkpoint.
>
> -------------------------------------------------------------------
> if len(sys.argv) != 4:
>   print "Enter group name, verbose setting (-s or -v), and db type"
>   exit(0)
>
> GRP = sys.argv[1]   (a few lines later I check this value against a db)	
> 	
> verbose = 'x'
> if sys.argv[2] == '-s': verbose = False
> if sys.argv[2] == '-v': verbose = True
> if verbose not in (True,False):
>   print "Enter -s (silent) or -v (verbose)"
>   exit()
> 	
> dbtype = sys.argv[3]	
> if dbtype not in ('sqlite postgres'):
>   print "db type must be sqlite or postgres"
>   exit()
> -------------------------------------------------------------------
>
> $1,000,000 virtual if you can get a bad command past those.
>
> These are good commands:
> $python progname.py comp.lang.python -v postgres
> $python progname.py comp.lang.c -s sqlite

So these are meant to be bad commands:
$python progname.py comp.lang.python -v post
$python progname.py comp.lang.c -s sql
$python progname.py comp.lang.cobol -v 'lite post'
$python progname.py comp.lang.perl -s stgr

What happens when you try them with the above code?


More information about the Python-list mailing list