猿问

“u”在字符串值前面的意思是什么?

“u”在字符串值前面的意思是什么?

是的,简而言之,我想知道为什么我在我的钥匙和价值观面前看到一个你。

我正在绘制一个表格。该表单有特定标签的复选框和IP地址的一个文本字段。我正在创建一个字典,其中键是标签,在list_key中硬编码,字典的值来自表单输入(List_Value)。字典是创建的,但它前面有u作为一些值。下面是字典的示例输出:

{u'1': {'broadcast': u'on', 'arp': '', 'webserver': '', 'ipaddr': u'', 'dns': ''}}

有人能解释一下我做错了什么吗。我没有得到错误,当我模拟类似的方法在灭弧室。欢迎任何改进代码的建议。谢谢

#!/usr/bin/env pythonimport webapp2import itertoolsimport cgi

form ="""
    <form method="post">
    FIREWALL 
    <br><br>
    <select name="profiles">
        <option value="1">profile 1</option>
        <option value="2">profile 2</option>
        <option value="3">profile 3</option>
    </select>
    <br><br>
    Check the box to implement the particular policy
    <br><br>

    <label> Allow Broadcast
        <input type="checkbox" name="broadcast">
    </label>
    <br><br>

    <label> Allow ARP
        <input type="checkbox" name="arp">
    </label><br><br>

    <label> Allow Web traffic from external address to internal webserver
        <input type="checkbox" name="webserver">
    </label><br><br>

    <label> Allow DNS
        <input type="checkbox" name="dns">
    </label><br><br>

    <label> Block particular Internet Protocol  address
        <input type="text" name="ipaddr">
    </label><br><br>

    <input type="submit">   
    </form>
"""dictionarymain={}class MainHandler(webapp2.RequestHandler):  
    def get(self):
        self.response.out.write(form)

    def post(self):
        # get the parameters from the form 
        profile = self.request.get('profiles')

        broadcast = self.request.get('broadcast')
        arp = self.request.get('arp')
        webserver = self.request.get('webserver')
        dns =self.request.get('dns')
        ipaddr = self.request.get('ipaddr')


        # Create a dictionary for the above parameters
        list_value =[ broadcast , arp , webserver , dns, ipaddr ]
        list_key =['broadcast' , 'arp' , 'webserver' , 'dns' , 'ipaddr' ]

        #self.response.headers['Content-Type'] ='text/plain'
        #self.response.out.write(profile)


慕娘9325324
浏览 571回答 2
2回答

慕勒3428872

字符串值前面的‘u’表示字符串已被表示为Unicode。在这里,字符串之前的字母称为“字符串编码声明”。Unicode是一种表示比普通ascii所能管理的更多字符的方法。可以通过多种方式将字符串转换为Unicode:>>>&nbsp;u'foo'u'foo'>>>&nbsp;unicode('foo')u'foo'但真正的原因是代表这样的东西(翻译这里):>>>&nbsp;val&nbsp;=&nbsp;u'Ознакомьтесь&nbsp;с&nbsp;документацией'>>>&nbsp;val u'\u041e\u0437\u043d\u0430\u043a\u043e\u043c\u044c\u0442\u0435\u0441\u044c&nbsp;\u0441&nbsp;\u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\ u0446\u0438\u0435\u0439'>>>&nbsp;print&nbsp;valОзнакомьтесь&nbsp;с&nbsp;документацией在大多数情况下,在处理与此代码中的ascii字符串不同的字符串时,您不应该有任何错误。您还会看到其他符号,例如“原始”符号,用于告诉字符串不要解释任何特殊字符。在python中执行正则表达式时,这是非常有用的。>>>&nbsp;'foo\"''foo"'>>>&nbsp;r'foo\"''foo\\"'ASCII和Unicode字符串在逻辑上可以等效:>>>&nbsp;bird1&nbsp;=&nbsp;unicode('unladen&nbsp;swallow')>>>&nbsp;bird2&nbsp;=&nbsp;'unladen&nbsp;swallow'>>>&nbsp;bird1&nbsp;==&nbsp;bird2True
随时随地看视频慕课网APP

相关分类

Python
我要回答