[PYTHON] week4: Structure de contrôle / fonction d'évaluation

Principalement similaire à d'autres langues, abréviations, mémos et autres parties spécifiques:

1. fonction eval

eval () Le nombre de boîtes est assez grand, et la démo officielle est résolue: Shoji-sho-kushi str C'est une formule de table de vente valide et efficace. Exemple

>>> a,b,c = eval(input("please input(a,b,c):"))
please input(a,b,c):1,2,3
>>> print("{},{},{}".format(a,b,c))
1,2,3

Substituts de premier niveau, etc. ʻa, b, c = 1,2,3`, provoquent eval general 户 cérémonie d'achèvement de la brochette de marque de caractère de type import. Eval meeting qui n'utilise pas la face supérieure du fruit

>>> a,b,c = input("please input(a,b,c):")
please input(a,b,c):1,2,3
Traceback (most recent call last):
  File "<pyshell#2>", line 1, in <module>
    a,b,c = input("please input(a,b,c):")
ValueError: too many values to unpack (expected 3)

Épéiste de haut niveau, etc. ʻa, b, c = "1,2,3" `,

Réexamen d'un exemple d'enfant:

>>> a = "[[1,2], [3,4], [5,6], [7,8], [9,0]]"
>>> b = eval(a)
>>> print("{}".format(a))
[[1,2], [3,4], [5,6], [7,8], [9,0]]
>>> print("{}".format(b))
[[1, 2], [3, 4], [5, 6], [7, 8], [9, 0]]
>>> print("{},{}".format(type(a),type(b)))
<class 'str'>,<class 'list'>

Au moment de b = eval (a), Sho a Nakabiki émet une table interne d'actions partielles, 赋 值 给 b, Na 么 b liste la plus récente, table de séquence immédiate, un syllabaire.

  1. ** vol d'urgence eval box, Noh shoujo shoujo shoujo shoujo shoujo shoujo shoujo shoujo shoujo shoujo shoujo shoujo shoujo shoujo shoujo shoujo shoujo shoujo shoujo shoujo shoujo shoujo ** **
  2. ** D'un autre côté, c'est pratique, mais c'est sûr à utiliser, et c'est une question de sécurité pour créer une société. ** **

1.1 Fonction exec () similaire

évaluation de la capacité de calcul de type de table individuel unique individual, exec peut état dynamique 执 码 dan, retour mortel total supplémentaire de l'exécutif 值 **,

def func():
    y = 20
    a = exec('2*y')
    print('a: ', a)

    a1 = eval('1.5*y')
    print('a1: ', a1)    

    exec("A=1;B=A+2;print(\"{},{}\".format(A,B))")

func()

Importer les conséquences:

a:  None
a1:  30
1,3

Vue de dessus: Introduction:

  1. retour de retour de mort de numéro d'exécution, retour de retour d'évaluation
  2. exec peut table à plusieurs étages

2 Traitement normal

Similaire à d'autres catégories, exemples:

import math
def main():
    try:
        number1,number2=eval(input("Enter the two number,separated by a comma  :"))
        result = number1 / number2

    except ZeroDivisionError:
        print("Division by zero!")
    except SyntaxError:
        print("A comma may be missing!")
    except:
        print("Something wrong!")
    else:
        print("No exception,the reslut is ",result)
    finally:
        print("Over!")

main()

Importer les résultats:

Enter the two number,separated by a comma  :1 3
A comma may be missing!
Over!

========= RESTART: C:\Users\legendcos\Desktop\python-study\052701.py =========
>>> 
Enter the two number,separated by a comma  :1,0
Division by zero!
Over!

========= RESTART: C:\Users\legendcos\Desktop\python-study\052701.py =========
Enter the two number,separated by a comma  :1,2
No exception,the reslut is  0.5
Over!

3. Circulation alternative

def main():
    sum = 0.0
    count = 0
    xStr = input("Enter a number(<Enter> to quit) >> ")
    while xStr != "":
        x = eval(xStr)
        sum = sum + x
        count = count + 1
        xStr = input("Enter a number(<Enter> to quit) >> ")

    print("\n The average of the numbers is: ",sum / count)

main()

1 Importation d'acceptation directe, importation directe directe

4. Diffusion des documents

def main():
    fileName = input("what file are the numbers in:\n")
    infile = open(fileName,'r')
    sum = 0
    count = 0
    for line in infile:
        sum = sum + eval(line)
        count = count + 1
    print("\n The average of the numbers is: ",sum / count)
main()

Le résultat de l'acte:

what file are the numbers in:
h:\data.txt

 The average of the numbers is:  4.111111111111111
>>> 

Ya Peut utiliser la boîte readline (), Nyoshita:

def main():
    fileName = input("what file are the numbers in:\n")
    infile = open(fileName,'r')
    sum = 0
    count = 0
    line = infile.readline()
    while line != "":
        sum = sum + eval(line)
        count = count + 1
        line = infile.readline()
    print("\n The average of the numbers is: ",sum / count)
main()

Dans le texte d'importation de plus haut niveau, un nombre entre eux, plusieurs nombres entre eux et "," division, 则 demande une circulation adaptée, après la réforme

def main():
    fileName = input("what file are the numbers in:\n")
    infile = open(fileName,'r')
    sum = 0
    count = 0
    line = infile.readline()
    while line != "":
        for xStr in line.split(","):
            sum = sum + eval(xStr)
            count = count + 1
        line = infile.readline()
    print("\n The average of the numbers is: ",sum / count)
main()

5. Circulation de la mort

Utilisation de python en python Fonction spécifique terminée

while True:
    try:
        x = int(input("please enter a number:"))
        break
    except ValueError:
        print("oh,that wa no valid number,Try again..")

Pause de sortie du talent

Recommended Posts

week4: Structure de contrôle / fonction d'évaluation
[Tutoriel Python] Outil de structure de contrôle