Python – die neusten Beiträge

python sinus cosinus tangens math modul?

Hallo,

from math import sin, cos, tan


print("Winkelfunktionen")

print("          /| ")
print("         /ß| ")
print("        /  | ")
print("       /   | ")
print("      /    | ")
print("c    /     |a ")
print("    /      | ")
print("   /       | ")
print("  /        | ")
print(" /        _| ")
print("/@_______/.| ")
print("     b       ")

print("Um das Dreieck zu berechnen brauchen wir folgende Informationen")
rechtwinklig_abfrage = input("Ist ihr Dreieck rechtwinklig? (erkennbar am Zeichen oder 90°) [j/n] ")
if rechtwinklig_abfrage == "j":
    rechtwinklig = True
else:
    rechtwinklig = False
    print("Winkelfunktionen können in nicht-rechtwinkligen Dreiecken nicht benutzt werden! ")


a_abfrage = input("Ist die Seite a gegeben? [j/n] ")
if a_abfrage == "j":
    a_vorhanden = True
    a = int(input("welche Länge ist für a angegeben?: "))
else:
    a_vorhanden = False

b_abfrage = input("Ist die Seite b gegeben? [j/n] ")
if b_abfrage == "j":
    b_vorhanden = True
    b = int(input("welche Länge ist für b angegeben?: "))
else:
    b_vorhanden = False

c_abfrage = input("Ist die Seite c/Hypotenuse gegeben? [j/n] ")
if c_abfrage == "j":
    c_vorhanden = True
    c = int(input("welche Länge ist für c/Hypotenuse angegeben?: "))
else:
    c_vorhanden = False

alpha_abfrage = input("Ist  alpha gegeben? (@) [j/n] ")
if alpha_abfrage == "j":
    alpha_vorhanden = True
    alpha = int(input("Welche Größe ist für alpha angegeben?"))
else:
    alpha_vorhanden = False

beta_abfrage = input("Ist  beta gegeben? (ß) [j/n] ")
if beta_abfrage == "j":
    beta_vorhanden = True
    beta = int(input("Welche Größe ist für alpha angegeben?"))
else:
    beta_vorhanden = False

art_abfrage = input("was soll berechnet werden? [a/b/c/@/ß] ")
if art_abfrage == "a":
    if alpha_vorhanden and b_vorhanden:
        ergebnis = tan(alpha*b)
        print(ergebnis)

wie verwende ich das math modul richtig?

zb

b 0 3

alpha = 40

eigentlich sollte 2,52 rauskommen, das programm kommt aber auf 0,71

Danke

Computer, Mathematik, programmieren, Informatik, modul, Python, Sinus, Cosinus, Tangens

Wie kann ich meinen Python-Code schneller machen?

Hallo,

ich habe gestern in Python ein paar Funktionen geschrieben, die mir ein interessantes Bild ausrechnen sollen. Ich kriege es jedoch nicht hin, dass das Programm einigermaßen schnell läuft und am Ende muss auch die Auflösung darunter leiden

Wenn da mal jemand drüberschauen könnte, wäre das wirklich hilfreich.

import numpy as np
import matplotlib.pyplot as plt
from math import pi, sqrt, atan

#Punkt definieren
class point:
    def __init__(self,x=0,y=0,z=0):
        self.x = x
        self.y = y

    #Operationen
    def __str__(self):
        return "({0},{1})".format(self.x, self.y)

    def __add__(self, other):
        return point(self.x+other.x,self.y+other.y)

    def __sub__(self, other):
        return point(self.x - other.x, self.y - other.y)

    def __abs__(self):
        return sqrt(self.x**2 + self.y**2)

    def __mul__(self, other):
        if type(other) == point:
            return point(self.x * other.x, self.y * other.y)
        return point(self.x * other, self.y * other)

    def __truediv__(self, other):
        if type(other) == point:
            return point(self.x / other.x, self.y / other.y)
        return point(self.x / other, self.y / other)

    def __neg__(self):
        return point(-self.x,-self.y)

# weitere Funktionen für Punkte
def dis(PointA,PointB):
    return abs(PointB-PointA)

def dir(PointA,PointB):
    return (PointB-PointA)/dis(PointA,PointB)


#Funktion für den Wert
def grav_v(x,y,time=5,frames=60):
    p = point(-1,0)
    sp = point(x+1,y)

    c = point(0,0)
    sc = point(0,0)
    
    #Vielleicht wegen des for-loops so langsam?
    for k in range(frames*time):
        try:
            plus = dir(p,c) * 1/dis(p,c)**2 / frames
            sp += plus
            p += sp/frames
            sc -= plus
            c += sc/frames
        except:
            pass

    return p


#Funktion für das Bild
def grav_c(a=-4, b=4, smoothness=1):
    ROWS = []
    p = 0
    print(0)
    #zwei for-loops...
    for Y in np.linspace(a,b,int(200*smoothness)):
        row = []
        for X in np.linspace(a,b,int(200*smoothness)):
            g = grav_v(X, Y)
            row.append( (abs(atan(g.x)*2/pi), abs(atan(g.y)*2/pi), abs(atan(abs(g))*2/pi)) )
        ROWS.append(row)
        p += 1
        print(p / (200 * smoothness))
    plt.imshow(ROWS, extent=(a, b, a, b))
    plt.show()

grav_c()
Computer, Programm, programmieren, Effizienz, Informatik, Programmiersprache, Python

Wie kann ich in einer While Schleife mit If-Bedingungen einen Namen überprüfen?

Ich muss für die Schule, in der Programmiersprache "Python" ein sogenanntes "Textadventure" schreiben. Dabei soll man am Anfang einen Vornamen eingeben. (mit input)

Der Vorname soll ohne Zahlen, Leerzeichen und Sonderzeichen durch kommen. Sprich nur in Buchstaben. Mit isalpha() kann man das tuen. Der Name soll mindestens 3 Buchstaben groß sein. Dies funktioniert mit len().

Mein Problem ist, das ich nicht weiß, wie ich das umsetzten soll.

CODE:

while True:
    vorname = input("Vorname: ")
    if len(vorname) > 2 and vorname.isalpha():
      break
    elif len(vorname) <= 3:
        print("Bitte einen Namen eingeben, der mindestens 3 Buchstaben enthält!")
        print("")
    else:
      print("Keine Leerzeile, Zahlen, Sonderzeichen! Bitte nur ein Namen eingeben!")
      print("")

OUTPUT:

---------------------
Vorname: A
Bitte einen Namen eingeben, der mindestens 3 Buchstaben enthält!
⠀
Vorname: #
Bitte einen Namen eingeben, der mindestens 3 Buchstaben enthält!
⠀
Vorname: Mia
...
(klappt)

Beim OUTPUT fragte mich das Terminal nach den Vornamen. Wo ich "A" eingegeben habe, kam was ich wollte entsprechend raus.

Und hier ist jetzt mein Problem. Wenn ich Sonderzeichen (in dem Falle eine Rautetaste "#") eingebe, soll mir nicht:

"Bitte einen Namen eingeben, der mindestens 3 Buchstaben enthält!"

angegeben werden, sondern:

"Keine Leerzeile, Zahlen, Sonderzeichen! Bitte nur ein Namen eingeben!".

Ich hoffe, ihr könnt mir dabei helfen!! MfG!

Computer, programmieren, Informatik, Python

Wie kann ich Punkt 3 und Punkt 4 in einer Funktion in Python implementieren?

In der Aufgabe steht:

Schreiben Sie ein Programm mit den folgenden Funktionen:

  • umfangKreis(radius)

Berechnen des Umfangs eines Kreises.

  • flaecheKreis(radius)

Berechnen des Flächeninhalts eines Kreises.

  • umfangKreis(radius)

Berechnen der Summe aller Umfänge einer Menge von Kreisen.

  • flaecheKreis(radius)

Berechnen der Summe aller Flächeninhalte einer Menge von Kreisen.

Rufen Sie in den Funktionen für eine Menge von Kreisen die bereits implementierten Methoden für das Berechnen des Umfangs und der Fläche der einzelnen Kreise auf. Auf diesem Weg sparen Sie sich die abermalige Implementierung der benötigten Formeln. Kopieren Sie das erstellte Programm mit den Funktionen in einem neuen Ordner. Testen Sie alle Funktionen an geeigneten Testbeispielen in einem separaten Programm. Beachten Sie hierzu den Hinweis für den Suchpfad von Python.

Ich habe das Ganze jetzt erstmal so gelöst, dass ich zwei Programme in einem Ordner gespeichert habe, also einmal definition.py, wo ich die die Formeln für Umfang und Flächeninhalt eines Kreises definiere, und einmal main.py, wohin ich für Punkt 3 und 4 hin exportieren möchte. Allerdings verstehe ich nicht so ganz, was mit der Menge von Kreisen gemeint ist. Wie könnte ich hier weiter fortfahren?

Computer, Schule, Mathematik, Technik, IT, programmieren, Kreis, Gleichungen, Informatik, Python, Technologie, Universität, kreisberechnung, Python 3

Wie kann ich das anders Umsetzen (Python 3)?

Hi also ich mach mir einen kleinen Sprachassistenten Bot ist nichts zum veröffentlichen oder so ich mach mir das halt um während dem Zocken mal sagen zu können spiel playlist ... usw. Speech to Text usw klappt alles Wunderbar nur das Music Spielen macht klitze bisschen Probleme. Ich will das "main.py" weiter zuhört nachdem ich subprocess.call() gemacht habe aber in dem script das ich damit augerufen habe ist so etwas wie time.sleep() damit die music weiter spielt.

Teil meiner Main.py:


if "spiel" in txt:
    if "playlist" in txt:
        if "1" in txt:
            say("Playlist 1 wird Wiedergegeben.")
            subprocess.call(["C:\\Users\\Zensiert\\AppData\\Local\\Programs\\Python\\Python38\\pythonw.exe", "playlist1.py", "play"])
            os.execv(sys.executable, ['python3'] + sys.argv)

if "pause" in txt:
    say("Musik wird Pausiert")
    subprocess.call(["C:\\Users\\Zensiert\\AppData\\Local\\Programs\\Python\\Python38\\pythonw.exe", "playlist1.py", "pause"])

Und hier meine playlist1.py

import pygame
import sys, getopt

arguments = str(sys.argv)

pygame.init()

pygame.mixer.music.load('C:\\Users\\Zensiert\\IdeaProjects\\LibreOfficeSprachAssistent\\.idea\\songs\\playlist1\\streets.mp3')
if(sys.argv[1]== 'play'):
    pygame.mixer.music.play()

elif(sys.argv[1] == 'pause'):
    pygame.mixer.music.pause()

print(f"Arg Input      : {sys.argv[1]=}")

clock = pygame.time.Clock()
while pygame.mixer.music.get_busy():
    clock.tick(309)
    pygame.event.poll() 

Das Script spielt die Musik und es klappt auch alles aber ich kann halt erst wieder reden wenn ich 309 Sekunden (Wegen dem "clock.tick(309)") gewartet habe. Jemand eine Idee? Ich weiß alles nicht so gut erklärt sorry

PC, Computer, Windows, Programm, Sprache, programmieren, System, Bot, Informatik, Playlist, Python, debugging, Wiedergabe, Pygame, Sprachassistent, IntelliJ IDEA

Meistgelesene Beiträge zum Thema Python