J'ai tapé un programme sur Pycharm, je l'ai mis sur ma calculatrice en faisant 'copié/collé' dans un nouveau classeur Python dans les classeurs de ma calculatrice mais, lorsque je le lance, il m'affiche une erreur après 2 lignes de code.
Au tout début du code, je demande à l'utilisateur d'entrer une valeur (qui sera ensuite utilisée dans la suite), mais lorsque je rentre n'importe quel nombre, ça ne fonctionne pas, il me met une erreur comme quoi la syntaxe est invalide. Si quelqu'un peut me dire comment régler ce souci, ça serait cool, car je n'ai pas vraiment envie de devoir retaper tout mon code pour qu'il 'fit' dans la calculatrice. Merci !!
voici le code si ça peut rendre les choses plus claires:
- Code: Tout sélectionner
import math
E1 = requestStr("Entrez le module de Young dans la direction longitudinale (El) en MPa: ")
N12 = requestStr("Entrez le coefficient de Poisson (nu): ")
# Convertir les valeurs saisies en nombres
E1 = float(E1)
N12 = float(N12)
print("Materiaux isotrope?")
print("1 Oui (alu...)")
print("2 Non (composites...)")
x = int(requestStr("Entrez votre choix (1 ou 2): "))
if x == 1:
G12 = E1 / (2 * (1 + N12))
E2 = E1
else:
E2 = requestStr("Entrez le module de Young dans la direction transversale (Et) en MPa: ")
G12 = requestStr("Entrez le module de cisaillement transverse (Glt) en MPa")
# Convertir les valeurs saisies en nombres
E2 = float(E2)
G12 = float(G12)
S = [[0, 0, 0], [0, 0, 0], [0, 0, 0]]
S[0][0] = 1 / E1
S[0][1] = -N12 / E1
S[1][0] = S[0][1]
S[1][1] = 1 / E2
S[2][2] = 1 / G12
print("S (10^-5 MPa^-1)= ")
for i in range(3):
for j in range(3):
S[i][j] = round(S[i][j] * 1e5, 2)
print(S[i])
Q = [[0, 0, 0], [0, 0, 0], [0, 0, 0]]
Q[0][0] = E1 / (1 - (E2 * N12 ** 2 / E1))
Q[1][1] = E2 * Q[0][0] / E1
Q[0][1] = N12 * Q[1][1]
Q[1][0] = Q[0][1]
Q[2][2] = G12
print("Q (GPa)= ")
for i in range(3):
for j in range(3):
Q[i][j] = round(Q[i][j] * 1e-3, 2)
print(Q[i])
a = int(requestStr("Nb de couches: "))
theta = [0] * a
h = [0] * (a + 1)
Sref_list = []
Qref_list = []
for i in range(a):
print("Couche", i + 1)
theta[i] = requestStr("Angle (deg): ")
h[i] = requestStr("Épaisseur de la couche en mm: ")
# Convertir les valeurs saisies en nombres
theta[i] = float(theta[i])
h[i] = float(h[i])
theta_i = theta[i]
S11 = S[0][0]
S12 = S[0][1]
S22 = S[1][1]
S66 = S[2][2]
c = math.cos(theta_i * 3.14 / 180)
s = math.sin(theta_i * 3.14 / 180)
Sref = [[0, 0, 0], [0, 0, 0], [0, 0, 0]]
Sref[0][0] = S11 * c ** 4 + S22 * s ** 4 + (2 * S12 + S66) * s ** 2 * c ** 2
Sref[0][1] = (S11 + S22 - S66) * s ** 2 * c ** 2 + S12 * (s ** 4 + c ** 4)
Sref[1][0] = Sref[0][1]
Sref[0][2] = (2 * (S11 - S12) - S66) * s * c ** 3 + (2 * (S12 - S22) + S66) * s ** 3 * c
Sref[2][0] = Sref[0][2]
Sref[1][1] = S11 * s ** 4 + S22 * c ** 4 + (2 * S12 + S66) * s ** 2 * c ** 2
Sref[1][2] = (2 * (S11 - S12) - S66) * s ** 3 * c + (2 * (S12 - S22) + S66) * s * c ** 3
Sref[2][1] = Sref[1][2]
Sref[2][2] = 2 * (2 * (S11 + S22 - 2 * S12) - S66) * s ** 2 * c ** 2 + S66 * (s ** 4 + c ** 4)
print("S' (10^-5 MPa^-1)= ")
for j in range(3):
for k in range(3):
Sref[j][k] = round(Sref[j][k], 2)
print(Sref[j])
Sref_list.append(Sref)
Q11 = Q[0][0]
Q12 = Q[0][1]
Q22 = Q[1][1]
Q66 = Q[2][2]
Qref = [[0, 0, 0], [0, 0, 0], [0, 0, 0]]
Qref[0][0] = Q11 * c ** 4 + Q22 * s ** 4 + 2 * (Q12 + 2 * Q66) * s ** 2 * c ** 2
Qref[0][1] = (Q11 + Q22 - 4 * Q66) * s ** 2 * c ** 2 + Q12 * (s ** 4 + c ** 4)
Qref[1][0] = Qref[0][1]
Qref[0][2] = (Q11 - Q12 - 2 * Q66) * s * c ** 3 + (Q12 - Q22 + 2 * Q66) * s ** 3 * c
Qref[2][0] = Qref[0][2]
Qref[1][1] = Q11 * s ** 4 + Q22 * c ** 4 + 2 * (Q12 + 2 * Q66) * s ** 2 * c ** 2
Qref[1][2] = (Q11 - Q12 - 2 * Q66) * s ** 3 * c + (Q12 - Q22 + 2 * Q66) * s * c ** 3
Qref[2][1] = Qref[1][2]
Qref[2][2] = (Q11 + Q22 - 2 * Q12 - 2 * Q66) * s ** 2 * c ** 2 + Q66 * (s ** 4 + c ** 4)
print("Q' (GPa)= ")
for j in range(3):
for k in range(3):
Qref[j][k] = round(Qref[j][k], 2)
print(Qref[j])
Qref_list.append(Qref)