Programmieren – die besten Beiträge

Python "in" in einer IF-verzweigen funktioniert nicht?

Hallo zusammen,

ich möchte per Tastendruck den Link zu einem Screenshot z.B. https://i.imgur.com/qk5TpU0.png
aus meiner Zwischenablage in ein Google Spreadshead hochladen. Diese sollen natürlich untereinander erscheinen und nicht doppelt. Hier funktioniert aber nicht der "in" Operator.

Bild vom Spreadshead: https://i.imgur.com/gOxxDeN.png

Der Code: "
import keyboard
from tkinter import Tk
import gspread
from oauth2client.service_account import ServiceAccountCredentials

# use creds to create a client to interact with the Google Drive API
scope = ["https://spreadsheets.google.com/feeds", 'https://www.googleapis.com/auth/spreadsheets',
         "https://www.googleapis.com/auth/drive.file", "https://www.googleapis.com/auth/drive"]
creds = ServiceAccountCredentials.from_json_keyfile_name('client_secret.json', scope)
client = gspread.authorize(creds)

# Find a workbook by name and open the first sheet
# Make sure you use the right name here.
sheet = client.open("test für api").sheet1


def check_value_existence():
    row = 2  # Reihe
    col = 2  # Spalte
    value = sheet.cell(col, row).value
    clipboard = Tk().clipboard_get()
    if "imgur" in value:
        while True:
            col = col + 1
            value = sheet.cell(col, row).value
            if "imgur" in value:
                break
        print("found", col)
        col = col - 1
        if value != clipboard:
            sheet.update_cell(2, 2, clipboard)


while True:
    if keyboard.read_key() == "p":
        print("You pressed p")
        check_value_existence()
"
Computer, programmieren, Code, Informatik, Python, Python 3

Java Switch Case im Falle, dass alle "case"s falsch sind?

Ich habe ein paar if-else-Ausdrücke, die ich gut durch switch ersetzen könnte, jedoch möchte ich auch ein else-Statement behalten, d.h. wenn alle Bedingungen vorher unwahr sind - (wie) geht das?

String test = "2";
if (test.charAt(0) == 'a') {
 System.out.println("1");
} else if (test.charAt(0) == 'b'){
 System.out.println("2");
} else if (test.charAt(0) == 'c'){
 System.out.println("3");
} else if (test.charAt(0) == 'd'){
 System.out.println("4");
} else if (test.charAt(0) == 'e'){
 System.out.println("5");
} else {
 System.out.println("Nicht vorhanden"); 
}


String test = "2";
switch(test.charAt(0)){
  case 'a': System.out.println("1"); break; // if bzw. if else
  case 'b': System.out.println("2"); break; // if bzw. if else
  case 'c': System.out.println("3"); break; // if bzw. if else
  case 'd': System.out.println("4"); break; // if bzw. if else
  case 'e': System.out.println("5"); break; // if bzw. if else
  case test.charAt(0): System.out.println("Nicht vorhanden"); break; //else-Äquivalent
}

doch dann, selbst wenn ich test.charAt(0) in eine Variable extrahiere, erhalte ich:

"case expressions must be a constant statement".

Und das macht natürlich auch Sinn, dennoch wollte ich fragen, ob es eine Möglichkeit gibt, mit Switch-Cases eine Möglichkeit zu haben, wenn kein Fall korrekt ist. Und damit meine ich nicht, eine boolische Variable einzuführen, die dann in allen cases verändert wird.

Computer, programmieren, Java

Array in ein anderes Array absteigend sortieren - Java?

Hallo Zusammen,

ich würde gerne ein Array in ein anderes Array absteigend sortieren.

Wenn ich in der for-Schleife und auch im weiteren Verlauf immer den letzen Index, also hier 3 manuell eingebe, läuft mein Programm tadellos. Jedoch möchte ich nicht von einer bestimmten Array-Länge abhängig sein und deshalb die Abbruchbedingung "hoch.length" anstatt eines festen Indexes nutzen, damit ich das Array auch ggf. erweitern kann.

Hier habe ich aber irgendwo einen Fehler und finde einfach nicht warum ich einen "Index out of bound" Fehler in der kursiv markierten Zeile erhalte.

Kann mir vielleicht jemand sagen wo mein Fehler liegt?

Danke!

public static void main(String[] args) {
      //   Index   =            0,1,2,3
         int [] hoch = new int []{2,3,4,5};            
         // neues array "runter" erstellen mit der Länge von Array "hoch"
         int [] runter = new int [hoch.length];
         // Start bei 0, Ende bei hoch.length
         for(int i=0; i <= hoch.length; i++) {
         // Hilfsvariable "hilfe" einbauen     
         int hilfe;                                    
  // hoch.length ist mein letzter Durchgang, -1 da ich eine Position mehr habe als dass ich einen Index habe
         runter [i] = hoch [hoch.length -i -1];
         hilfe = runter [i];
         }     
         // Ausgabe
         System.out.println("Array hoch:" + " " + Arrays.toString(hoch));
         System.out.println("Array runter:" + " " + Arrays.toString(runter));
         }}
Computer, Schule, programmieren, Java, Array

Meistgelesene Beiträge zum Thema Programmieren