Pyhton Daten updaten?

Hallo

ich bin neu in der Python Welt und habe eine kleine Frage bezüglich arbeiten mit Daten (.txt)

Ich will ein Geldaufnahme Programm schreiben wo ich Daten speichern muss und regelmäßig updaten will.

Zum Programm: Nachdem mein Lohn kam will ich alle meine Kontostände aktualisieren und diese sollen dann gespeichert werden und auf Wunsch aufrufbar sein.

(Erfundenen Zahlen)

Hier ist das Dictunary in der TXT datei:

Bestände = {

"Sparbuch" : 1000,

"Girokonto" : 2000,

"Depot : 3000,

"Bar" : 4000

}

Mein Lohn (3.000€ ) kommt und ich verteile das Geld auf die Konten.

Hier fange ich in der Geldaufnahme.py Datei an:

Sparbuch1 = input("Was ist der Aktuelle stand? ") #verändert um +1.000

Girokonto2 = input("Was ist der Aktuelle stand? ") #verändert um +1.000

Depot3 = input("Was ist der Aktuelle stand? ")

Bar4 = input("Was ist der Aktuelle stand? ") #verändert um +1.000

Jetzt zu meinem ersten Problem:

Wie kann ich die Daten aus der txt datei in meiner .py Datei als Dictunary rüber holen und dann selbständig bearbeiten?

bzw

Die Bestände: Sparbuch/ Girokonto und Bar verändern sich um jeweils 1.000€

wie kann ich das in der Txt datei aktualisieren?

Zu meinem zweiten Problem:

Ich will nur den Bestand des Depotes wissen wie lese ich das gezielt aus der txt datei aus?

zu meinem Dritten Problem:

Ist txt datei das richtige hierfür?

Ich hoffe es war verständlich

danke schonmal im voraus 

HTML, Webseite, Java, JavaScript, Batch, cmd, PHP, Programmiersprache, Python, Webentwicklung, Python 3
Minecraft 1.20.4 - Eclipse Programmierung, kann keine Imports machen?

Ich möchte mit Java ein Plugin für 1.20.4 programmieren und habe mir ein Code von ChatGPT schreiben lassen.

package de.diamanthoe.plugin;

import org.bukkit.Material;

import org.bukkit.Particle;

import org.bukkit.command.Command;

import org.bukkit.command.CommandSender;

import org.bukkit.command.CommandExecutor;

import org.bukkit.configuration.ConfigurationSection;

import org.bukkit.configuration.file.FileConfiguration;

import org.bukkit.entity.Player;

import org.bukkit.inventory.Inventory;

import org.bukkit.inventory.ItemStack;

import org.bukkit.inventory.meta.ItemMeta;

import org.bukkit.plugin.java.JavaPlugin;

import org.bukkit.Location;

public class NaviSystem extends JavaPlugin implements CommandExecutor {

  @Override

  public void onEnable() {

    // Register commands

    getCommand("navi").setExecutor(this);

  }

  @Override

  public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {

    if (!(sender instanceof Player)) {

      sender.sendMessage("Dieser Befehl kann nur von Spielern ausgeführt werden.");

      return true;

    }

    Player player = (Player) sender;

    if (cmd.getName().equalsIgnoreCase("navi")) {

      if (args.length >= 1) {

        if (args[0].equalsIgnoreCase("save")) {

          if (args.length >= 2) {

            savePoint(args[1], player.getLocation());

            sender.sendMessage("Punkt gespeichert unter: " + args[1]);

          } else {

            sender.sendMessage("Verwendung: /navi save [Name]");

          }

        } else {

          if (args.length >= 3) {

            try {

              double x = Double.parseDouble(args[0]);

              double y = Double.parseDouble(args[1]);

              double z = Double.parseDouble(args[2]);

              Location target = new Location(player.getWorld(), x, y, z);

              createParticleTrail(player, target);

            } catch (NumberFormatException e) {

              sender.sendMessage("Ungültige Koordinaten.");

            }

          } else {

            sender.sendMessage("Verwendung: /navi <x y z>");

          }

        }

      } else {

        sender.sendMessage("Verwendung: /navi <x y z>");

      }

    }

    return true;

  }

  private void createParticleTrail(Player player, Location target) {

    Location playerLocation = player.getLocation();

    player.spawnParticle(Particle.REDSTONE, playerLocation, 0, target.getX(), target.getY(), target.getZ(), 10);

  }

  private void savePoint(String name, Location location) {

    FileConfiguration config = getConfig();

    config.set("points." + name + ".world", location.getWorld().getName());

    config.set("points." + name + ".x", location.getX());

    config.set("points." + name + ".y", location.getY());

    config.set("points." + name + ".z", location.getZ());

    saveConfig();

  }

  private void openPointsGUI(Player player) {

    Inventory gui = getServer().createInventory(null, 9, "Gespeicherte Punkte");

    ConfigurationSection pointsSection = getConfig().getConfigurationSection("points");

    if (pointsSection != null) {

      for (String pointName : pointsSection.getKeys(false)) {

        ConfigurationSection pointConfig = pointsSection.getConfigurationSection(pointName);

        if (pointConfig != null) {

          String worldName = pointConfig.getString("world");

          double x = pointConfig.getDouble("x");

          double y = pointConfig.getDouble("y");

          double z = pointConfig.getDouble("z");

          ItemStack pointItem = createPointItem(worldName, x, y, z);

          gui.addItem(pointItem);

        }

      }

    }

    player.openInventory(gui);

  }

  private ItemStack createPointItem(String worldName, double x, double y, double z) {

    ItemStack item = new ItemStack(Material.COMPASS);

    ItemMeta meta = item.getItemMeta();

    meta.setDisplayName(worldName + " - " + x + ", " + y + ", " + z);

    item.setItemMeta(meta);

    return item;

  }

}

Das Problem ist, dass da total viel rot unterstrichen wird, was wahrscheinlich auf die Imports zurückzuführen ist. Die Imports selbst sind teilweise ebenso rot interstrichen (org.bukkit).

Ich benutze das JDK 17 und Java SE 1.8.

Java, Minecraft, Code, Minecraft Server, Programmiersprache, Bukkit, Spigot
Mongo DB Express auf Port :8081 zum Laufen kriegen. Was mach ich falsch?

Hab mal eine Frage zum Thema IT & Server & Ports und würde mich freuen wenn mir einer mit Fachkenntnissen weiterhelfen kann:

Also ich versuche hier seit Tagen eine kleine Webseite auf einem angemieteten Server (Debian 10) zum Laufen zu kriegen und möchte dabei das Datenbanksystem Mongo DB (+ das Webinterface mongo-express) verwenden. Die wichtigsten Grundabhängigkeiten wie Mongo DB, PHP, Java, node.js, npm etc. konnte ich bereits alle installieren und hab es nach sehr langem Herumprobieren sogar geschafft mit einem kleinen .sh Script den Port :8081 zu öffnen, sodass dieser zumindest in den IP-Tables angezeigt wird. Auch konnte ich (Mithilfe verschiedener Anleitungen) alle Anwendungen erfolgreich starten, teils erst nach dem Setzen einiger Umgebungsvariablen setzen und bekomme nun die Meldung, dass der DB-Express Server auf dem richtigen Port lauscht. Dennoch komm ich nun seit gestern nicht weiter bzw. mein Browser kann sich mit dem Port :8081 des Servers einfach nicht verbinden > "Netzwerkfehler", wobei die Ursache alles und nichts sein kann! Hab auch schon mit anderen Ports probiert mit ähnlichem Resultat. Meine Frage wäre jetzt ob irgendeiner diese Anwendung hier (dieses Problem) zufällig kennt oder weiß was hier zutun ist oder was ein mögliches Problem sein kann?   Ich hab da zwar eine wage Vermutung aber da ich das alles komplett blind und zum ersten mal mache und derzeit keinen *richtigen* IT-Experten habe wären ein paar Ratschläge, die jetzt nicht unbedingt in den Anleitungen stehen nicht schlecht?

Server, Linux, Netzwerk, Webseite, programmieren, Java, Apache, Firewall, Netzwerkverbindung, PHP, Port, Kommandozeile, MongoDB, Debian 10
Java: Methode wird sehr wahrscheinlich nicht aufgerufen?

Mein Programm lässt sich ohne jegliche Fehlermeldungen, etc. kompilieren und ausführen. Beim Ausführen des Codes stoppt es ohne einen von mir ersichtlichen Grund, wenn es die Methode karteout() ausführen soll. Es zeigt mir, wo es eigentlich einen Namen einer Spielkarte anzeigen sollte, einfach eine leere Zeile an, in die ich nichts eingeben kann.

Mein Code:

Main.java:

public class Main {
  public static void main(String[] args) {
    Kartendeck karten = new Kartendeck();
    karten.kartendeck();
    Player pturn = new Player();
    pturn.player();
  }
}

Kartendeck.java:

import java.util.Random;

public class Kartendeck {
  private int counter1;
  private int cardid;
  private int[] cards = new int[52];
  private int karte;
  private int zs1;

  public void kartendeck() {
    counter1 = -1;

    for (int i = 0; i < 4; i++) {
      for (int j = 0; j < 13; j++) {
        i++;
        j++;
        cardid = 100 * i + j;
        counter1++;
        i--;
        j--;
        cards[counter1] = cardid;
      }
    }
  }

  public void karteout() {
    Random random = new Random();
    loopkarte: while (true) {
      karte = random.nextInt(52);
      zs1 = cards[karte];

      if (cards[karte] != 0) {
        cards[karte] = 0;
        break loopkarte;
      }
    }

    if (zs1 % 100 == 1) {
      System.out.print("Ace ");
    }
    else if (zs1 % 100 == 2) {
      System.out.print("2 ");
    }
    else if (zs1 % 100 == 3) {
      System.out.print("3 ");
    }
    else if (zs1 % 100 == 4) {
      System.out.print("4 ");
    }
    else if (zs1 % 100 == 5) {
      System.out.print("5 ");
    }
    else if (zs1 % 100 == 6) {
      System.out.print("6 ");
    }
    else if (zs1 % 100 == 7) {
      System.out.print("7 ");
    }
    else if (zs1 % 100 == 8) {
      System.out.print("8 ");
    }
    else if (zs1 % 100 == 9) {
      System.out.print("9 ");
    }
    else if (zs1 % 100 == 10) {
      System.out.print("10 ");
    }
    else if (zs1 % 100 == 11) {
      System.out.print("Jack ");
    }
    else if (zs1 % 100 == 12) {
      System.out.print("Queen ");
    }
    else if (zs1 % 100 == 13) {
      System.out.print("King ");
    }
    else {
      System.out.print("");
    }

    if ((zs1 - zs1 % 100) / 100 == 1) {
      System.out.println("of Spades");
    }
    else if ((zs1 - zs1 % 100) / 100 == 2) {
      System.out.println("of Hearts");
    }
    else if ((zs1 - zs1 % 100) / 100 == 3) {
      System.out.println("of Clubs");
    }
    else if ((zs1 - zs1 % 100) / 100 == 4) {
      System.out.println("of Diamonds");
    }
    else {
      System.out.print("");
    }
  }
}

Player.java:

import java.util.Scanner;

public class Player {
  private String userinput;

  public void player() {
    Scanner scan = new Scanner(System.in);
    Kartendeck karten = new Kartendeck();
    System.out.println("CPU's up:");
    karten.karteout();
    System.out.println("Deine Startkarten:");
    karten.karteout();
    karten.karteout();

    loopturn: while (true) {
      System.out.println("Was möchtest du machen?");
      System.out.println("--> Hit");
      System.out.println("--> Stay");
      userinput = scan.nextLine();

      loopuser: while (true) {
        if (userinput.equals("Hit")) {
          karten.karteout();
          break loopuser;
        }
        else if (userinput.equals("Stay")) {
          break loopturn;
        }
        else {
          System.out.println("Diese Funktion ist nicht verfügbar!");
        }
      }
    }
  }
}

Ich hoffe, mir kann jemand helfen und vielen Dank im Voraus.

Java, Code
Code Error Java?
public class Main {
public static void main(String[] args) {


    GUI gui = new GUI();
    
    }
    
   public static int fak (int n) {
        if (n == 0) {
            return 1;
        }
        return n * fak(n - 1);
    }
    
}

import javax.swing.*;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;


import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;


public class GUI extends JFrame {
    JButton button = new JButton("Berechnen");
    JLabel label = new JLabel("Bitte geben Sie die Zahl ein: ");
    JTextField textfield = new JTextField(2);
    JOptionPane popup = new JOptionPane();
    JPanel panel = new JPanel();
    
    public GUI () {
        setSize(300, 300);
        setTitle("Fakultätsrechner");
        setLayout(new FlowLayout());
        setVisible(true);
        
        panel.add(textfield);
        panel.add(label);
        panel.add(button);
        add(panel);
        
        setDefaultCloseOperation(EXIT_ON_CLOSE);
        setVisible(true);


        button.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                try {
                    String input = textfield.getText();
                    int number = Integer.parseInt(input);
                    int result = Main.fak(number);
                    JOptionPane.showMessageDialog(null, "Die Fakultät von " + number + " ist " + result);
                } catch (NumberFormatException ex) {
                    JOptionPane.showMessageDialog(null, "Bitte geben Sie eine gültige Ganzzahl ein.");
                }
            }
        });
        
    }





}

Error: java.lang.ClassNotFoundException: Main

Aber wieso findet er denn die Main-Klasse nicht? Verstehe ich nicht.

App, Java, Minecraft, Array, Code, Eclipse, Minecraft Server, Programmiersprache, Swing, game-development, Bukkit, Spigot, Java Swing, Android Studio
Java-Programm funktionier unerklärlicherweise nicht?

Mein Java Programm soll in der Zukunft eine Enigmamaschine simulieren. Ich möcht e das man sie auch beliebig einstellen kann, aber wenn ich es ausprobiere kommt nur ein Error. Dieser entsteht in den Zeilen 25-36, aber nach mehrfacjiger Prüfung verstehe ich immer noch nicht warum.

Hier ist der Code:

import java.util.Scanner;

public class Main {
   public static void main(String[] args) {
      Scanner scan = new Scanner(System.in);
      int counter1 = 0;
      String input;
      String settings;
      String spellzs;
      System.out.println("Dieses Programm chiffriert deinen Text mit der Enigma-M4-Verschlüsslung.");
      System.out.println("Gib deinen Text zum Verschlüsslen ein.(ohne Leerzeichen)");
      input = scan.nextLine();
      System.out.println("Gib die Verschlüsslungseinstellungen an.");
      System.out.println("z.B.: AZ-BY-CX-DW-EV-FU-GT-HS-IR-JQ-I-VI-VIII->1->13->26-A-M-Z");
      settings = scan.nextLine();
      String[] spelledInput = new String[input.length()];
      for (int i = 0; i < input.length(); i++) {
         spelledInput[i] = "";
         spelledInput[i] += input.charAt(i);
      }
      String[] spelledSettings = new String[19];
      for (int i = 0; i < 19; i++) {
         spelledSettings[i] = "";
      }
      for (int i = 0; i < 19; i++) {
         spellzs = "";
         spellzs += settings.charAt(counter1);
         if (!spellzs.equals("-")) {
            spelledSettings[i] += settings.charAt(counter1);
            counter1++;
            i--;
         }
         else {
            counter1++;
         }
      }
      for (int i = 0; i < spelledSettings.length; i++) {
         System.out.println(spelledSettings[i]);
      }
   }
}

Ich hoffe auf baldige Antwort und danke im voraus.

Java, Array
GUI in Taschenrechner integrieren (Java)?
import java.util.Scanner;
import javax.swing.JTextField;
public class App {
    public static void main(String[] args) {
    
        Scanner scanner = new Scanner(System.in);


        new GUI();
        
        try {
        System.out.println("Bitte geben Sie ihre Berechnung ein: ");
        String eingabe = scanner.nextLine();
        String[] teile = eingabe.split(" ");
        
        double zahl1 = Double.parseDouble(teile[0]);
        double zahl2 = Double.parseDouble(teile[2]);
        char operator = teile[1].charAt(0);
        
        System.out.println(taschenrechner(eingabe, zahl1, zahl2, operator));
        
    } catch (NumberFormatException e) {
            System.out.println("Bitte geben Sie einen gültigen Wert ein!");
        } finally {
            scanner.close();
        }
    }
    
    static double taschenrechner (String eingabe, double zahl1, double zahl2, char operator) {


        double ergebnis = 0.0;


        if (operator == '/' && zahl2 == 0) {
            throw new ArithmeticException("Das dividieren durch 0 ist nicht erlaubt!");
        }
        
        switch (operator) {
            case '-': ergebnis = zahl1 - zahl2; break;
            case '+': ergebnis = zahl1 + zahl2 ; break;
            case '*': ergebnis = zahl1 * zahl2; break;
            case '/': ergebnis = zahl1 / zahl2; break;
        }
            return ergebnis;
    }    
}

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
import java.awt.*;


public class GUI extends App{


    private JTextField textFieldZahl1;
    private JTextField textFieldZahl2;
    private JTextField textFieldOperator;
    private JLabel labelErgebnis;
    private JButton buttonBerechnen;
    
    public GUI () {


    JFrame frame = new JFrame("Taschenrechner");
        frame.setLayout(new FlowLayout());
        frame.setSize(500, 500);
        frame.add(new JButton("+"));
        frame.add(new JButton("-"));
        frame.add(new JButton("*"));    
        frame.add(new JButton("/"));
        frame.add(new JTextField(20));
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setVisible(true);
    }
}

Wie kann ich die GUI jetzt mit der Taschenrechner-Logik verknüpfen?

Java, Code, Eclipse, Programmiersprache, Algorithmus, Java Swing

Meistgelesene Fragen zum Thema Java