我如何枚举一个月的元组并实际存储该信息以备后用?
months = ( '==========', 'Ιανουάριος', 'Φεβρουάριος', 'Μάρτιος', 'Απρίλιος', 'Μάϊος', 'Ιούνιος', 'Ιούλιος', 'Αύγουστος', 'Σεπτέμβριος', 'Οκτώβριος', 'Νοέμβριος', 'Δεκέμβριος' )
months = enumerate( months )
以上返回错误:
TypeError: sequence item 0: expected str instance, tuple found
此外,上述枚举数据的存储方式必须使以后使用几个月的矿井代码继续起作用。
name = month = year = ''
# populate names, months, years
names.add( '====================' )
names = sorted( names )
months = ( '==========', 'Ιανουάριος', 'Φεβρουάριος', 'Μάρτιος', 'Απρίλιος', 'Μάϊος', 'Ιούνιος', 'Ιούλιος', 'Αύγουστος', 'Σεπτέμβριος', 'Οκτώβριος', 'Νοέμβριος', 'Δεκέμβριος' )
years = ( '=====', 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019 )
pdata = pdata + '''
<br><h3><br><font color=gold size=6> Επιλεκτική Αναζήτηση </font><br>
<form method="POST" action="%s">
''' % url_for('seek')
pdata = pdata + '''<select name="name"><option> %s </option></select>''' % '</option><option>'.join( names )
pdata = pdata + '''<select name="month"><option> %s </option></select>''' % '</option><option>'.join( months )
pdata = pdata + '''<select name="year"><option> %s </option></select>''' % '</option><option>'.join( list( map( str, years ) ) )
pdata = pdata + '''
<br><input type="image" src="/static/img/submit.gif" name="seek" value="<Αναζήτηση>">
</form> <br><br>
'''
return pdata
答案 0 :(得分:0)
枚举对象的形式(内部)
months = [
(0, '====='),
(1, 'January),
...
]
字符串join
方法要求加入一系列 strings 。但是,它得到一个 tuples 序列,因此会给出错误。
由于要连接需要字符串列表,因此请为菜单的每个选项创建一个字符串,然后将其连接。像
options = [f'<option value="{index}">{name}</option>' for index, value in enumerate(months)]
options
列表的格式为
[
'<option value="1">January</option>',
'<option value="2">February</option>'
...]
因此,您只需将其与一个空字符串连接起来,然后使用select
元素进行替换。
select = '<select>' + ''.join(options) + '</select>'
这是您的select
元素,为字符串。由于它是字符串,因此您可以在字符串之前或之后添加任何内容
pdata = "<h1>διαλεξε μηνα</h1>" + select + "<button>στειλε φορμα</button>"
(这在python 3.6+中有效。如果您使用的是旧版本,请使用适当的字符串格式)。