Скорее всего, вы не хотите вызывать input
как в условном выражении while, так и в цикле while. Что-то вроде этого, вероятно, то, что вы собираетесь:
a = []
num = int(input())
while num != -1:
a.append(num)
num = int(input())
Кроме того, ваше усреднение немного сложнее, чем необходимо. Попробуйте это:
b = sum(a) / len(a)
Конечно, вы столкнетесь с проблемами, если не введете какие-либо числа для усреднения, то есть деления на 0.
Я закончил modifiying пример Codeproject немного:
Imports System.Web.Script.Serialization
Imports System.Reflection
Public Class FlexiGrid
Public Class FlexigridRow
Public id As String
Public cell As New List(Of String)()
End Class
Public Class FlexigridObject
Public page As Integer
Public total As Integer
Public rows As New List(Of FlexigridRow)()
End Class
Public Shared Function GetFlexiGridJSON(ByVal page As Integer, ByVal total As Integer, ByVal o As Object) As String
Dim js As New JavaScriptSerializer
Dim flexiGrid As New FlexigridObject
Dim i As Integer = 0
flexiGrid.page = page
flexiGrid.total = total
For Each c In o
Dim r As New FlexigridRow()
r.id = i
r.cell = GetPropertyList(c)
flexiGrid.rows.Add(r)
i += i
Next
Return js.Serialize(flexiGrid)
End Function
Private Shared Function GetPropertyList(ByVal obj As Object) As List(Of String)
Dim propertyList As New List(Of String)()
Dim type As Type = obj.[GetType]()
Dim properties As PropertyInfo() = type.GetProperties(BindingFlags.Instance Or BindingFlags.[Public])
For Each [property] As PropertyInfo In properties
Dim o As Object = [property].GetValue(obj, Nothing)
propertyList.Add(If(o Is Nothing, "", o.ToString()))
Next
Return propertyList
End Function
End Class
Теперь в моем контроллере я просто звоню:
Return Content(GetFlexiGridJSON(pageIndex, TotalCount, objCustomerList))
Пока объект, который я передаю, является списком объектов, он работает отлично.
Json()
метод в ASP.NET MVC просто использует JavaScriptSerializer
класс через JsonResult
класс. Вы могли использовать это сами, если бы Вы хотели сериализировать объект objCustomerList, использующий JSON для строки.
Моя рекомендация состояла бы в том, чтобы проявить немного отличающийся подход.
Json()
это просто работало бы, никакая потребность создать строковое использование JSON StringBuilder
.Если Вы просто хотите, чтобы Ваш код работал, существует переопределение на JavaScriptSerializer.Serialize()
это берет объект сериализировать и StringBuilder
добавлять результаты к. Который должен быть точно, что Вы ищете.
Некоторые необходимые ссылки:
Вы также можете сделать это:
JsonResult json = ... ;
JavaScriptSerializer serializer = new JavaScriptSerializer();
string yourJsonResult = serializer.Serialize(json.Data);
Вот так просто: D
редактировать: code high lighting