gpt4 book ai didi

python - Python ValueError : invalid literal for int() with base 10

转载 作者:行者123 更新时间:2023-12-03 08:23:58 24 4
gpt4 key购买 nike

我正在尝试建立一个python过程:

  • 打开.txt文件(仅包含以下字符串:“47 297 297”作为
    给用户的建议);
  • 从用户那里获取三个字符串(例如"47", "298",
    "298"
    ),该字符串可以与所建议的字符串不同,并且必须为
    在操作结束时以“47 298 298”连接起来;
  • 将+1添加到最后两个字符串后,将其转换为整数;
  • 然后再次将该整数转换为字符串;
  • 并将三个字符串连接为一个字符串,并将其写入外部文件中。

  • 例:
    def getNumBookPg():
    doc = open("numlpg.txt")
    numBookPg = []
    numbers = doc.read().split()
    for n in numbers:
    numBookPg.append(n)
    return numBookPg

    def updateNumBookPg(b, ip, fp):
    newNumBookPg = ' ' + b + ' ' + str(int(fp) + 1) + ' ' + str(int(fp) + 1)
    # It uses fp twice
    doc = open("numlpg.txt", "w")
    doc.write(newNumBookPg)

    在IDE上执行此操作时,就可以了。但是,当我在我的小appn(代码波纹管)中执行此操作时,我发现一个unicode发行错误:
     File "C:\Users\CG\Documents\udacity\contract\main.py", line 174, in get
    updateNumBookPg(geted_numBook, geted_numInitialPage, geted_numFinalPage)
    File "C:\Users\CG\Documents\udacity\contract\main.py", line 61, in updateNumBookPg
    newNumBookPg = ' ' + b + ' ' + str(int(fp) + 1) + ' ' + str(int(fp) + 1)
    ValueError: invalid literal for int() with base 10: "(u'297',)"

    (“297”是.txt文件中的第一个拆分数字)

    该脚本已保存在UTF-8中。如何解决?
    # -*- coding: utf-8 -*-
    # -*- coding: utf-8 -*-
    #!/usr/bin/env python
    #
    # Copyright 2007 Google Inc.
    #
    # Licensed under the Apache License, Version 2.0 (the "License");
    # you may not use this file except in compliance with the License.
    # You may obtain a copy of the License at
    #
    # http://www.apache.org/licenses/LICENSE-2.0
    #
    # Unless required by applicable law or agreed to in writing, software
    # distributed under the License is distributed on an "AS IS" BASIS,
    # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    # See the License for the specific language governing permissions and
    # limitations under the License.
    #

    import os

    import webapp2

    import jinja2

    jinja_environment = jinja2.Environment(autoescape=True,
    loader=jinja2.FileSystemLoader(os.path.join(os.path.dirname(__file__), 'templates')))

    import re

    from google.appengine.ext import db

    USER_RE = re.compile(r"^[a-zA-Z0-9_ -]{3,20}$")
    def valid_person(person):
    return USER_RE.match(person)

    PASS_RE = re.compile(r"^.{3,20}$")
    def valid_SSN(SSN):
    return PASS_RE.match(SSN)

    EMAIL_RE = re.compile(r"^[\S]+@[\S]+\.[\S]+$")
    def valid_email(email):
    return EMAIL_RE.match(email)

    import time

    import datetime


    def getNumBookPg():
    doc = open("numbookpg.txt")
    numBookPg = []
    numbers = doc.read().split()
    for n in numbers:
    numBookPg.append(n)
    return numBookPg

    numBookPage = getNumBookPg()

    def updateNumBookPg(b, ip, fp):
    newNumBookPg = ' ' + b + ' ' + str(int(fp) + 1) + ' ' + str(int(fp) + 1)
    doc = open("numbookpg.txt", "w")
    doc.write(newNumBookPg)


    def dateToday():
    today = datetime.datetime.today()
    todayDay = str(today.day)
    todayMonth = str(today.month)
    monthExt = {'1':' January ', '2':'February', '3':' March ', '4':'April', '5':'May', '6':'June', '7':' July ', '8':'August', '9':'September', '10':'October', '11':'November ', '12':'December'}
    todayYear = str(today.year)
    return(todayDay + ' of ' + monthExt[todayMonth] + ' of ' + todayYear)

    class MainHandler(webapp2.RequestHandler):
    def get(self):
    geted_numBook = numBookPage[-3]
    geted_numInitialPage = numBookPage[-2]
    geted_numFinalPage = numBookPage[-1]
    template_values = {"person": "",
    "nacionality": "",
    "SSN": "",
    "driverLicense": "",
    "email":"",
    "person_error": "",
    "SSN_error": "",
    "driverLicense_error": "",
    "address": "",
    "email_error": "",
    "numBook": geted_numBook,
    "numInitialPage": geted_numInitialPage,
    "numFinalPage": geted_numFinalPage,}
    template = jinja_environment.get_template('index.html')
    self.response.out.write(template.render(template_values))

    ## def write_form(self, text_write):
    ## self.response.out.write(text_write)

    def post(self):
    person_name = self.request.get("person")
    user_nacionality = self.request.get('nacionality')
    user_profession = self.request.get('profession')
    user_maritalStatus = self.request.get('maritalStatus')
    user_SSN = self.request.get('SSN')
    user_email = self.request.get('email')
    user_driverLicense = self.request.get('driverLicense')
    person_error = ""
    SSN_error = ""
    driverLicense_error = ""
    geted_email_error = ""
    address = self.request.get('address')
    contractType = self.request.get("contractType")
    owner = self.request.get("owner")
    witness = self.request.get("witness")
    numBook = self.request.get("numBook"),
    numInitialPage = self.request.get("numInitialPage"),
    numFinalPage = self.request.get("numFinalPage"),

    if (person_name and valid_person(person_name)) and (user_SSN and valid_SSN(user_SSN)) and ((not user_email) or (user_email and valid_email(user_email))):
    a = Person(firstName = person_name,
    nacionality = user_nacionality,
    maritalStatus = user_maritalStatus,
    profession = user_profession,
    SSN = int(user_SSN),
    driverLicense = int(user_driverLicense)
    #address = user_address
    )
    a.put()
    self.redirect('/your_contract?person=%s&nacionality=%s&profession=%s&maritalStatus=%s&SSN=%s&driverLicense=%s&email=%s&witness=%s&owner=%s&contractType=%s&address=%s&numBook=%s&numInitialPage=%s&numFinalPage=%s' % (person_name, user_nacionality, user_profession, user_maritalStatus, user_SSN, user_driverLicense, user_email,
    witness, owner, contractType, address, numBook, numInitialPage, numFinalPage))

    else:
    if not person_name or not valid_person(person_name):
    person_error = "Oh no!!! this person name isn't valid!"
    if not user_SSN or not valid_SSN(user_SSN):
    SSN_error = "Oh no!!! SSN isn't valid!"
    if user_email and not valid_email(user_email):
    geted_email_error = "Oh no!!! e-mail isn't valid!"
    template_values = {"person": person_name,
    "nacionality": user_nacionality,
    "maritalStatus": user_maritalStatus,
    "profession": user_profession,
    "SSN": user_SSN,
    "driverLicense": user_driverLicense,
    "email": user_email,
    "person_error": person_error,
    "SSN_error": SSN_error,
    "driverLicense_error": user_driverLicense,
    "address": address,
    "email_error": geted_email_error}
    template = jinja_environment.get_template('index.html')
    self.response.out.write(template.render(template_values))

    class your_contractHandler(webapp2.RequestHandler):
    def get(self):
    geted_person_name = self.request.get('person')
    geted_user_nacionality = self.request.get("nacionality")
    geted_user_profession = self.request.get("profession")
    geted_user_maritalStatus = self.request.get("maritalStatus")
    geted_user_SSN = self.request.get('SSN')
    geted_user_email = self.request.get('email')
    geted_user_driverLicense = self.request.get('driverLicense')
    geted_person_error = ""
    geted_SSN_error = ""
    geted_driverLicense_error = ""
    geted_address = self.request.get('address')
    geted_owner = self.request.get("owner")
    geted_witness = self.request.get("witness")
    geted_contractType = self.request.get("contractType")
    geted_dateToday = dateToday()
    your_contract = jinja_environment.get_template('your_contract.html')
    geted_numBook = self.request.get('numBook')
    geted_numInitialPage = self.request.get('numInitialPage')
    geted_numFinalPage = self.request.get('numFinalPage')
    updateNumBookPg(geted_numBook, geted_numInitialPage, geted_numFinalPage)
    your_contract_values = {"person":geted_person_name,
    "nacionality":geted_user_nacionality,
    "maritalStatus": geted_user_maritalStatus,
    "profession": geted_user_profession,
    "SSN":geted_user_SSN,
    "driverLicense":geted_user_driverLicense,
    "address":geted_address,
    "email":geted_user_email,
    "contractType":geted_contractType,
    "dateContract":geted_dateToday,
    "numBook":geted_numBook,
    "numInitialPage":geted_numInitialPage,
    "numFinalPage":geted_numInitialPage,
    }
    template = jinja_environment.get_template('index.html')
    self.response.out.write(your_contract.render(your_contract_values))

    class Person(db.Model):
    firstName = db.StringProperty(required = True)
    # lastName = db.StringProperty(required = True)
    nacionality = db.StringProperty(required = True)
    maritalStatus = db.StringProperty(required = True)
    profession = db.StringProperty(required = True)
    SSN = db.IntegerProperty(required = True)
    driverLicense = db.IntegerProperty(required = True)
    # address = db.PostalAdressProperty(required = True)
    # condition = db.StringProperty(required = False, choices=set(["buyer", "seller", "renter", "owner", "witness"]))

    app = webapp2.WSGIApplication([('/', MainHandler), ('/your_contract', your_contractHandler)],
    debug=True)

    最佳答案

    问题不在于它是一个unicode字符串,而是在于您将元组的字符串表示形式传递为fp:

    "(u'297',)"

    实际上是 int()引发错误的原因。检查您要传递给 geted_numFinalPage的值。 self.request.get("numFinalPage")返回什么值?

    关于python - Python ValueError : invalid literal for int() with base 10,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11319394/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com