Hướng dẫn how do you refresh a variable in python? - làm thế nào để bạn làm mới một biến trong python?

Được rồi, vì vậy tôi có tập lệnh Python này sao chép văn bản từ nhiều tệp và dán nó vào các tệp mới của một phần mở rộng tệp khác. Tuy nhiên, nó gần như đã hoàn thành tuy nhiên tôi có một vấn đề với nút làm mới của nó.

Để sử dụng nó, chỉ cần đặt một số tệp vào thư mục 'đầu vào', chạy chương trình và đi.

Trong trường hợp người dùng chạy chương trình không có tệp trong thư mục 'đầu vào', thấy rằng số lượng tệp bằng không và sau đó đặt một số tệp trong thư mục, tôi muốn biến File_Count được tải lại.

Hiện tại, tôi có một hàm gọi là 'refresh []' mở ra một trường hợp khác của chương trình và sau đó đóng phiên bản ban đầu. Điều này hoạt động, nhưng vì 'os.startfile' không được thiết kế cho việc sử dụng này, nó có một vài vấn đề:

Đầu tiên là từ tất cả, có vẻ như quá mức cần thiết để khởi động lại toàn bộ chương trình.

Thứ hai, 'Os.StartFile' chỉ hoạt động trên Windows.

Thứ ba, nếu cửa sổ được di chuyển và sau đó chương trình được 'làm mới', phiên bản mới sẽ mở ở vị trí mặc định.

Vì vậy, dù sao có cách nào để chạy lại biến 'file_count'?

PS. Tôi tự học nên có những khoảng trống trong kiến ​​thức của tôi [rõ ràng, đây là một trong số đó.] PPS. Chỉ sắp bắt đầu một bài giảng, vì vậy tôi sẽ chỉ có thể trả lời trong một giờ.

import sys
import os, os.path
from os import listdir
import shutil
from Tkinter import *
from Tkinter import Tk
from tkFileDialog import askopenfilename

path, dirs, files = os.walk[os.path.join[os.getcwd[], 'Input']].next[]
file_count = len[files]
dirList = os.listdir[path]

def refresh[]:
    opencp = os.startfile[os.path.join[os.getcwd[], 'Copy_Paster.py']]
    closecp = os.execl[sys.executable, *[[sys.executable]+sys.argv]]

def copy_paste[]:
    # Copy pastes text from source documents to new ones.
    for fname in dirList:
      print fname
      extension = text_entered.get[]
      copy = open[os.path.join[os.getcwd[], 'Input', fname], "r"]
      paste = open[os.path.join[os.getcwd[], 'Output', fname + extension], "w+"]
      copy.seek[0]
      shutil.copyfileobj[copy,paste]
      copy.close[]
      paste.close[]

# Window Geometry
width = "250"
height = "70"

# Window
root = Tk[]
root.geometry[width+"x"+height+"+500+200",]
root.resizable[0,0]
root.title["Copy Paster"]
text_entered = StringVar[]

counter = Label[text="Input Directory: " + str[file_count] + " files."]
counter.place[x=int[width]-248,y=int[height]-63]

refresh = Button[root,command=refresh,text="Refresh"]#Why this no work?
refresh.place[x=int[width]-80,y=int[height]-65, width=70]


format_label = Label[text="Output File Format:"]
format_label.place[x=int[width]-248,y=int[height]-35]
document_type = Entry[root, textvariable=text_entered]
document_type.place[x=int[width]-135,y=int[height]-33, width=40]

convert = Button[root,command=copy_paste,text="GO!"]
convert.place[x=int[width]-80,y=int[height]-35, width=70]

root.mainloop[]

Một trong những hình thức phân công lại phổ biến nhất là bản cập nhật trong đó giá trị mới của biến phụ thuộc vào cái cũ. Ví dụ,update where the new value of the variable depends on the old. For example,

Điều này có nghĩa là nhận được giá trị hiện tại của x, thêm một, sau đó cập nhật X với giá trị mới. Giá trị mới của X là giá trị cũ của X Plus 1. Mặc dù câu lệnh gán này có thể trông hơi lạ, hãy nhớ rằng việc thực hiện gán là một quá trình hai bước. Đầu tiên, đánh giá biểu thức bên tay phải. Thứ hai, hãy để tên biến ở phía bên trái đề cập đến đối tượng kết quả mới này. Thực tế là x xuất hiện ở cả hai bên không quan trọng. Các ngữ nghĩa của câu lệnh gán đảm bảo rằng không có sự nhầm lẫn nào về kết quả. Các trình hiển thị làm cho điều này rất rõ ràng.

Nếu bạn cố gắng cập nhật một biến không tồn tại, bạn sẽ gặp lỗi vì Python đánh giá biểu thức ở phía bên phải của toán tử gán trước khi nó gán giá trị kết quả cho tên bên trái. Trước khi bạn có thể cập nhật một biến, bạn phải khởi tạo nó, thường là với một bài tập đơn giản. Trong ví dụ trên, x đã được khởi tạo thành 6.initialize it, usually with a simple assignment. In the above example, x was initialized to 6.

Cập nhật một biến bằng cách thêm 1 được gọi là tăng; Trừ 1 được gọi là giảm. Đôi khi các lập trình viên cũng nói về việc va chạm một biến, điều đó có nghĩa là giống như tăng 1.increment; subtracting 1 is called a decrement. Sometimes programmers also talk about bumping a variable, which means the same as incrementing it by 1.

Chủ đê nâng cao

  • Chủ đề 1: Python vượt ra ngoài trình duyệt. Đây là một giới thiệu nhẹ nhàng về việc sử dụng Python từ dòng lệnh. Chúng tôi sẽ đề cập đến điều này sau, nhưng nếu bạn tò mò về Python trông như thế nào bên ngoài ebook này, bạn có thể có một cái nhìn ở đây. Ngoài ra còn có hướng dẫn cài đặt Python trên máy tính của bạn ở đây.

  • Chủ đề 2: Đi sâu vào Python 3, đây là một cuốn sách giáo khoa trực tuyến của Mark Pilgrim. Nếu bạn đã có một số kinh nghiệm lập trình, cuốn sách này sẽ đưa bạn đến tận cùng bằng cả hai chân.

Kiểm tra việc hiểu của bạn

    Điều gì được in khi các câu sau thực thi?

    x = 12
    x = x - 1
    print[x]
    

  • 12
  • Giá trị của x thay đổi trong câu lệnh thứ hai.
  • -1
  • Mỗi câu lệnh thay đổi giá trị của x, vì vậy 9 không phải là kết quả cuối cùng.
  • 11
  • Có, bắt đầu với 12, trừ 3, hơn là thêm 5 và cuối cùng thêm 1.
  • Không. Một lỗi xảy ra do X không thể được sử dụng nhiều lần trong các câu lệnh gán.
  • Hãy nhớ rằng các biến trong Python khác với các biến trong toán học ở chỗ chúng [tạm thời] giữ các giá trị, nhưng có thể được chỉ định lại.

    Điều gì được in khi các câu sau thực thi?

    x = 12
    x = x - 3
    x = x + 5
    x = x + 1
    print[x]
    

  • 12
  • Giá trị của x thay đổi trong câu lệnh thứ hai.
  • 9
  • Mỗi câu lệnh thay đổi giá trị của x, vì vậy 9 không phải là kết quả cuối cùng.
  • 15
  • Có, bắt đầu với 12, trừ 3, hơn là thêm 5 và cuối cùng thêm 1.
  • Không. Một lỗi xảy ra do X không thể được sử dụng nhiều lần trong các câu lệnh gán.
  • Hãy nhớ rằng các biến trong Python khác với các biến trong toán học ở chỗ chúng [tạm thời] giữ các giá trị, nhưng có thể được chỉ định lại.

Xây dựng mã sẽ dẫn đến giá trị 134 được in.

        mybankbalance = 100
mybankbalance = mybankbalance + 34
print[mybankbalance]
        

Ghi chú

Không gian làm việc này được cung cấp cho sự thuận tiện của bạn. Bạn có thể sử dụng cửa sổ ActiveCode này để thử bất cứ thứ gì bạn thích.

Bạn đã thử các hoạt động trên trang này of activities on this page

Bài Viết Liên Quan

Chủ Đề