Python – die neusten Beiträge

Flächeninhaltrechner in python funktioniert nicht?

Hallo,

Ich programmiere gerade einen Taschenrechner für Flächeninhalte von Formen, den ich immer weiter erweitere, nur irgendwie läuft der Code nicht, und ich glaube es liegt am else, aber wie geht es richtig?

print("Bitte maße mit . eingeben! Zum Beispiel: c = 3,5 cm Gebe ein: 3.5 bei ganzen Zahlen mit .0 angeben \n Zum Beispiel: 3.0")
print("sie können den Flächeninhalt von folgenden Formen berechnen:")
print("Dreieck, Quadrat, Rechteck, Trapez")


Form = input("Von welcher geometrischen Form wollen Sie die den Flächeninhalt berechnen?")


if Form == "Dreieck":
    print("Dreieck berechnen")
    c = float(input("Bitte maße für Grundlinie angeben"))
    h = float(input("Bitte maße für Höhe oder bei rechtwinkligen Seite neben rechten Winkel angeben"))
    Flächeninhalt = 1/2*c*h



elif Form == "Quadrat":
    print("Quadrat berechnen")
    a = float(input("Bitte die Länge einer Seite angeben"))
    Flächeninhalt = a*a



elif Form == "Rechteck":
    print("Quadrat berechnen...")
    a = float(input("Bitte die Länge einer Seite angeben"))
    b = float(input("Bitte die Länge einer danebenliegenden Seite angeben"))
    Flächeninhalt = a*b


else Form == "Trapez":
    print("Trapez berechnen...")
    a = float(input("Bitte Maße der Grundlinie angeben"))
    c = float(input("Bitte Maße der oberen Linie angeben"))
    h = float(input("Bitte Höhe angeben"))
    Flächeninhalt = 1/2*(a+c)*h



print("Flächeninhalt berechnen...")
print(Flächeninhalt)

Danke

programmieren, Python, Python 3

Python Selenium findet Button nicht?

Hi, ich habe ein Script geschrieben welches nacheinander auf verschiedene Buttons klickt und sich einloggt. Beim letzen Button kommt allerdings immer die Fehlermeldung, dieser sei nicht gefunden worden. Habe es sowohl mit Link_Text als auch mit ID versucht.

from selenium import webdriver
from selenium.webdriver.common.by import By
import selenium.webdriver.common
import selenium.webdriver.common.actions
from selenium.webdriver.support import expected_conditions as EC
from pynput.keyboard import Key, Controller
import time
from selenium.webdriver.support.wait import WebDriverWait
import win32clipboard

keyboard = Controller()

PATH = "C:\Program Files (x86)\chromedriver.exe"
driver = webdriver.Chrome(PATH)

driver.get("https://04101643.moodle.belwue.de/moodle/blocks/exa2fa/login/")
driver.maximize_window()

username = driver.find_element_by_id("username")
password = driver.find_element_by_id("password")

username.send_keys("---")  #Name und Passwort hab ich natürlich nur zum hochladen hier entfernt ;)
password.send_keys("---")

login = driver.find_element_by_id("loginbtn")
login.click()

time.sleep(5)

fach = driver.find_element_by_partial_link_text("Mathematik")
fach.click()

time.sleep(3)

bbb = driver.find_element_by_xpath('//img[contains(@src,"https://04101643.moodle.belwue.de/moodle/theme/image.php/boost/bigbluebuttonbn/1609841251/icon")]')
bbb.click()

time.sleep(3)

teilnehmen = driver.find_element_by_id("join_button_input")
teilnehmen.click()

time.sleep(5)

keyboard.press(Key.ctrl)
keyboard.press('l')
time.sleep(1)
keyboard.release(Key.ctrl)
keyboard.release('l')
time.sleep(1)
keyboard.press(Key.ctrl)
keyboard.press('c')
time.sleep(1)
keyboard.release(Key.ctrl)
keyboard.release('c')

win32clipboard.OpenClipboard()
page = win32clipboard.GetClipboardData()    #Muss man hier das Fenster wechseln?
win32clipboard.CloseClipboard()             #Hinweis beim Klicken auf den vorherigen Button wird der Link in einem neuen Tab geöffnet

driver.get(page)                                 #Hier geht es dann zu BigBlueButton (Videochat Seite) auf der der letzte Button gedrückt werden soll

time.sleep(1)

keyboard.press(Key.ctrl)
keyboard.press('w')
time.sleep(1)
keyboard.release(Key.ctrl)
keyboard.release('w')

time.sleep(3)

mode = driver.find_element_by_partial_link_text("Nur")  #Den hier findet es nicht (falls es jemand kennt: Ist der ,,Nur zuhören" Button von BigBlueButton, habe den Code leider nicht da
mode.click()

Für Hinweise oder Lösungen des Problems wäre ich sehr dankbar. Falls es Unklarheiten gibt, gerne einen Kommentar schreiben.

Computer, programmieren, Informatik, Python, Script, Selenium

Error 'unhandled exception' in mcedit?

Hallo zusammen, Ich wollte eben mal eine Struktur mit Mc Edit kopieren, doch als ich die Welt öffnete, kam dieser Error:

"MCEdit version: 2.0.0-beta14

Python version: 2.7.15 (v2.7.15:ca079a3ea3, Apr 30 2018, 16:30:26) [MSC v.1500 64 bit (AMD64)]

Platform: win32

System version: Windows-10-10.0.18362

Processor: Intel64 Family 6 Model 58 Stepping 9, GenuineIntel

Obtained a GL context with this format:

Valid: True

Version: 4.5

Hardware Accelerated: True

Depth buffer: True, 24

Double buffer: True

Rendering profile: PySide.QtOpenGL.QGLFormat.OpenGLContextProfile.CompatibilityProfile

Driver info:

GL_VERSION: 4.5.13399 Compatibility Profile Context 15.201.1151.1008 (4, 5)

GL_VENDOR: 'ATI Technologies Inc.'

GL_RENDERER: 'AMD Radeon HD 7500M/7600M Series'

------

Unhandled Exception

Traceback (most recent call last):

File "mcedit2\editorsession.py", line 1643, in viewOffsetChanged (self is a EditorTab)

File "mcedit2\worldview\minimap.py", line 187, in currentViewMatrixChanged (self is a MinimapWorldView)

File "mcedit2\util\raycast.py", line 30, in rayCastInBounds

File "mcedit2\util\profiler.py", line 73, in _wrapper (self is a Profiler)

File "mcedit2\util\raycast.py", line 77, in rayCast

File "mcedit2\util\raycast.py", line 215, in advanceToChunk

File "mceditlib\worldeditor.py", line 831, in getChunk (self is a WorldEditorDimension)

File "mceditlib\worldeditor.py", line 499, in getChunk (self is a WorldEditor)

File "mceditlib\cachefunc.py", line 77, in __call__

File "mceditlib\worldeditor.py", line 477, in _getChunkDataRaw (self is a WorldEditor)

File "mceditlib\anvil\adapter.py", line 922, in readChunk (self is a AnvilWorldAdapter)

AnvilChunkFormatError: [Errno Error loading chunk: KeyError('Key Blocks not found.',)] None: <traceback object at 0x0000023980A221C8>"

Computer 64 bit
win 10
Python: 2.7.15
mc edit version: 2.0.0 beta-14

Kann mir BITTE jemand helfen?
LG MineMuse07

Computer, Technik, programmieren, Minecraft, Error, Python

Python code erst nach Klick eines Buttons auführen?

Hallo,

ich arbeite gerade an einem Python Skript und komme nicht weiter. Vielleicht kann mir ja jemand Helfen meinen Fehler zu finden.

Ich habe mit Qt Designer eine GUI erstellt mit zwei Combo Boxen. Ich möchte, dass Python erst nach dem Klick des Buttons den Text in der Combo Box als String an eine Variable übergibt. Momentan nimmt er sich den Default Eintrag und speichert diesen in die Variable.

Ich habe hier mal meine "Main Methode":

from PyQt5 import QtCore, QtGui, QtWidgets
import sys
import GUI

app = QtWidgets.QApplication(sys.argv)
Dialog = QtWidgets.QDialog()
ui = GUI.Ui_Dialog()
ui.setupUi(Dialog)
Dialog.show()
Attribut1 = ui.Attribut1()
print(Attribut1)
Attribut2 = ui.Attribut2()

sys.exit(app.exec_())

und hier den relevanten Teil der GUI

import key_columns
from PyQt5 import QtCore, QtGui, QtWidgets
from tkinter import *

class Ui_Dialog(object):
    def setupUi(self, Dialog):
        Dialog.setObjectName("Dialog")
        Dialog.resize(400, 522)
        self.Button = QtWidgets.QDialogButtonBox(Dialog)
        self.Button.setGeometry(QtCore.QRect(30, 340, 341)
        self.Button.setOrientation(QtCore.Qt.Horizontal)
        self.Button.setStandardButtons(QtWidgets....)
        self.Button.setObjectName("Button")
        self.Attribut_1 = QtWidgets.QComboBox(Dialog)
        self.Attribut_1.setGeometry(QtCore.QRect(20, 40)
        self.Attribut_1.setObjectName("Attribut_1")
        self.Attribut_1.addItems(Attribute)
        ......
        self.Button.clicked.connect(self.Attribut1) 

   def Attribut1(self):
      Attribut = self.Attribut_1.currentText()
      return Attribut                

Müsste nicht dieser "self.Button.clicked.connect(self.Attribut1) Befehl erst nach dem Klick ausgeführt werden? Kann mir jemand den Fehler erklären?

Viele Grüße und Guten Rutsch :)

programmieren, Python

Python Error: [WinError 6] Das Handle ist ungültig fixen?

Moin seit kurzem funktioniert

sys.exit()

bei mir in Python nicht mehr.

Das Programm schließt sich aber es erscheint eine Fehlermeldung

FELHER:

Cancelling an overlapped future failed

future: <_OverlappedFuture pending overlapped=<pending, 0x2ea7a20> cb=[BaseProactorEventLoop._loop_self_reading()]>

Traceback (most recent call last):

 File "C:\Users\Anwender\AppData\Local\Programs\Python\Python38-32\lib\asyncio\runners.py", line 43, in run

  return loop.run_until_complete(main)

 File "C:\Users\Anwender\AppData\Local\Programs\Python\Python38-32\lib\asyncio\base_events.py", line 603, in run_until_complete

  self.run_forever()

 File "C:\Users\Anwender\AppData\Local\Programs\Python\Python38-32\lib\asyncio\windows_events.py", line 316, in run_forever

  super().run_forever()

 File "C:\Users\Anwender\AppData\Local\Programs\Python\Python38-32\lib\asyncio\base_events.py", line 570, in run_forever

  self._run_once()

 File "C:\Users\Anwender\AppData\Local\Programs\Python\Python38-32\lib\asyncio\base_events.py", line 1859, in _run_once

  handle._run()

 File "C:\Users\Anwender\AppData\Local\Programs\Python\Python38-32\lib\asyncio\events.py", line 81, in _run

  self._context.run(self._callback, *self._args)

 File "D:/Ruben/Projects/Python/Testing/main.py", line 15, in auswahlfenster

  await loginchecker()

 File "D:/Ruben/Projects/Python/Testing/main.py", line 36, in loginchecker

  raise SystemExit

SystemExit

During handling of the above exception, another exception occurred:

Traceback (most recent call last):

 File "C:\Users\Anwender\AppData\Local\Programs\Python\Python38-32\lib\asyncio\windows_events.py", line 66, in _cancel_overlapped

  self._ov.cancel()

OSError: [WinError 6] Das Handle ist ungültig

DEF LOGINCHECKER:

Bild zum Beitrag
Computer, programmieren, Informatik, Python

Python | was ist hier falsch?

def open_file():

   my_text.delete("1.0", END)

   #get filename
   text_file = filedialog.askopenfilename(initialdir="C:/", title="Open File", filetyßes=(("Text Files", "*.txt")))

Ich habe ein Tutorial auf YouTube nachgemacht um einen Text Editor zu erstellen.

Ich bin momentan bei der Funktion um Datein zu öffnen.

Also funktioniert bisher, außer es kommt beim öffnen immer ein Fehler der aber laut dem Py Terminal diese Zeile ist

text_file = filedialog.askopenfilename(initialdir="C:/", title="Open File", filetypes=(("Text Files", "*.txt")))

Kann mir jemand sagen was an dieser Zeile falsch ist?

Hier mal den Console Log

Exception in Tkinter callback
Traceback (most recent call last):

File "C:\xyz\AppData\Local\Programs\Python\Python37\lib\tkinter\__init__.py", line 1705, in __call__
    return self.func(*args)

  File "C:\xyz\editor.py", line 16, in open_file
    text_file = filedialog.askopenfilename(initialdir="C:/Benutzer", title="Open File", filetypes=(("Text Files", "*.txt")))

)))
  File "C:\xyz\AppData\Local\Programs\Python\Python37\lib\tkinter\filedialog.py", line 375, in askopenfilename
    return Open(**options).show()
  File "C:\xyz\AppData\Local\Programs\Python\Python37\lib\tkinter\commondialog.py", line 43, in show
    s = w.tk.call(self.command, *w._options(self.options))
_tkinter.TclError: bad file type "*.txt", should be "typeName {extension ?extensions ...?} ?{macType ?macTypes ...?}?"


Computer, programmieren, Informatik, Python

Wie ist dieser verbesserte Python Code zu Palindromen?

Verbesserter Code mit Hilfe der Antwort von alfredo153

#!/bin/python3
#Palindrome-Woerter in Textdatei erkennen
import string

#Funktion zum Erkennen von Palindromen
def check_palindrome(word):
    reverse = ''
    removable = string.punctuation + string.whitespace + string.digits
    for c in removable: #Sonderzeichen entfernen
        word = word.replace(c, '')
    if word in string.punctuation or word in string.whitespace: #Sonderzeichen abfangen
        return False
    for c in word[::-1]: #Wort rueckwaerts zusammen basteln
        reverse = reverse + c
    if reverse.lower() == word.lower(): #Rueckwaerts-Wort mit vorwaerts-Wort vergleichen
        return True
    else:
        return False

#Den Benutzer eine Textdatei oeffnen lassen
file = input('Path to file: ')
palindrome = []

try:
    with open(file, 'r') as f:
        lines = f.readlines()
except FileNotFoundError:
    print('File not found!')
    exit(0)

#Einzelne Woerter im Text der Funktion check_palindrome uebergeben
for line in lines:
    line = line.split(' ')
    for word in line:
        if check_palindrome(word):
            palindrome.append(word)
        else:
            continue

#Ergebnis anzeigen
print(len(palindrome), ' found!\n')
for i in range(len(palindrome)):
    print(palindrome[i].replace('\n', '')) #\n in Wort entfernen, da sonst zu viele Leerzeichen bei Output
Computer, programmieren, Informatik, Python

Verbesserungsvorschläge für mein Python Skript: Polindrome finden?

Hey,

ich habe heute ein kleines Python Skript geschrieben, um Polindrome in einer Textdatei zu erkennen. Polindrome sind Wörter, die rückwärts geschrieben genau den gleichen Sinn ergeben wie vorwärts geschrieben.

#!/bin/python3
#Polindrome-Woerter in Textdatei erkennen
import string

#Funktion zum Erkennen von Polindromen
def check_polindrome(word):
    reverse = ''
    removable = ['\n', '\t', '\r']
    for c in removable: # Zeug entfernen
        word = word.replace(c, '')
    for c in string.punctuation: #Sonderzeichen entfernen
        word = word.replace(c, '')
    for c in string.whitespace: #Leerzeichen entfernen, da sonst falsche Ergebnisse entstehen
        word = word.replace(c, '')
    if word in string.punctuation or word in string.whitespace: #Leer- und Sonderzeichen abfangen
        return False
    if word.isdigit() == True: #Zahlen abfangen, da z.B. 121 rueckwaerts auch 121 ergibt
        return False
    for i in range(len(word)-1, 0-1, -1): #Wort rueckwaerts zusammen basteln
        reverse = reverse + word[i]
    if reverse.lower() == word.lower(): #Rueckwaerts-Wort mit vorwaerts-Wort vergleichen
        return True
    else:
        return False

#Den Benutzer eine Textdatei oeffnen lassen
file = input('Path to file: ')
polindrome = []

try:
    with open(file, 'r') as f:
        lines = f.readlines()
except FileNotFoundError:
    print('File not found!')
    exit(0)

#Einzelne Woerter im Text der Funktion check_polindrome uebergeben
for i in range(0, len(lines)):
    lines[i] = lines[i].split(' ')
    for word in lines[i]:
        if check_polindrome(word) == True:
            polindrome.append(word)
        else:
            continue

#Ergebnis anzeigen
print(len(polindrome), ' found!\n')
for i in range(len(polindrome)):
    print(polindrome[i].replace('\n', '')) #\n in Wort entfernen, da sonst zu viele Leerzeichen bei Output

Die Projektidee habe ich von: https://www.gutefrage.net/frage/python-projekt-ideen#answer-357880884

Wie man rückwärts über eine Zeichenkette rotiert, habe ich von: https://stackoverflow.com/questions/7961499/best-way-to-loop-over-a-python-string-backwards

  • Hat jemand Verbesserungsvorschläge für meinen Code?
  • Ein kleines Feedback bitte
Computer, programmieren, Informatik, Python

Meistgelesene Beiträge zum Thema Python