Bạn có thể sử dụng các ký tự đặc biệt trong các biến trong python không?

Khi chúng tôi viết ấn bản thứ sáu của The Little SAS Book. A Primer, một trong những mục tiêu của chúng tôi là viết nó cho tất cả các lập trình viên SAS bất kể họ sử dụng giao diện nào để mã hóa. SAS Studio, SAS Enterprise Guide, môi trường cửa sổ SAS hoặc hàng loạt. Điều này khó hơn âm thanh. Có sự khác biệt trong cách thức hoạt động của các giao diện SAS. Một trong những điểm khác biệt đó là cài đặt mặc định cho tùy chọn hệ thống VALIDVARNAME=

VALIDVARNAME= Tùy chọn hệ thống

Tùy chọn hệ thống VALIDVARNAME= kiểm soát bộ quy tắc nào được sử dụng cho tên biến. Nếu VALIDVARNAME= được đặt thành V7, thì tên biến SAS phải bắt đầu bằng một chữ cái hoặc dấu gạch dưới và không được chứa bất kỳ ký tự đặc biệt nào kể cả khoảng trắng. Nếu VALIDVARNAME= được đặt thành BẤT KỲ, thì tên biến có thể chứa các ký tự đặc biệt kể cả khoảng trắng và có thể bắt đầu bằng bất kỳ ký tự nào. Dù bằng cách nào, tên biến vẫn phải dài từ 32 ký tự trở xuống. Để tìm giá trị mặc định cho phiên SAS của bạn, hãy gửi thông tin sau và đọc nhật ký SAS

PROC OPTIONS OPTION = VALIDVARNAME; RUN;

Để đặt quy tắc đặt tên biến cho phiên SAS hiện tại của bạn, hãy sử dụng câu lệnh TÙY CHỌN

OPTIONS VALIDVARNAME = value;

trong đó giá trị là V7 đối với các quy tắc đặt tên SAS truyền thống hoặc BẤT KỲ đối với các quy tắc tự do hơn

tên chữ

Nếu bạn đang sử dụng BẤT KỲ quy tắc nào, thì bạn phải sử dụng dạng tên theo nghĩa đen cho các tên biến chứa dấu cách hoặc ký tự đặc biệt trong chương trình của bạn. Chỉ cần đặt tên trong dấu ngoặc kép theo sau là chữ N

'tên biến'N

Ví dụ

Tệp được phân định bằng tab sau đây chứa thông tin về thiết bị cắm trại. tên mặt hàng, nước xuất xứ, giá trực tuyến và giá tại cửa hàng. Lưu ý rằng một số tiêu đề cột chứa dấu cách hoặc ký tự đặc biệt

Chương trình sau đặt VALIDVARNAME= bằng ANY và đọc tệp bằng PROC IMPORT. Sau đó, trong bước DỮ LIỆU, nó sử dụng dạng ký tự tên của tên biến để tập hợp con dữ liệu bằng cách sử dụng câu lệnh IF và nó tạo ra một biến mới là sự khác biệt giữa giá tại cửa hàng và giá trực tuyến

*Read data using ANY rules for variable names; OPTIONS VALIDVARNAME = ANY; PROC IMPORT DATAFILE = 'c:\MyRawData\CampEquip.txt' OUT = campequipment_any REPLACE; RUN; DATA campequipment_any; SET campequipment_any; IF 'Country of Origin'N = 'USA'; PriceDiff = 'Store$'N - 'Online$'N; RUN;

Đây là tập dữ liệu CAMPEQUIPMENT_ANY. Lưu ý các ký tự đặc biệt và dấu cách trong tên biến

Mặt hàngQuốc gia xuất xứTrực tuyến$Cửa hàng$GiáDiff18 người Lều cabin USA39939902Túi cắm trạiUSA119129103 Tấm lót siêu nhẹUSA69745

Nếu bạn quyết định rằng bạn không muốn sử dụng tên theo nghĩa đen, thì bạn có thể chọn đổi tên biến sao cho tên phù hợp với quy tắc V7. Bạn có thể thực hiện việc này bằng cách sử dụng tùy chọn RENAME data set

Một tùy chọn khác là sử dụng quy tắc đặt tên V7 khi bạn tạo tập dữ liệu. Nếu các quy tắc V7 được áp dụng, thì PROC IMPORT sẽ chuyển đổi khoảng trắng và ký tự đặc biệt trong tiêu đề thành dấu gạch dưới khi tạo tên biến. Chương trình sau đây giống như chương trình đầu tiên ngoại trừ VALIDVARNAME= được đặt thành V7. Lưu ý rằng bây giờ, thay vì khoảng trắng và ký tự đặc biệt, tên biến chứa dấu gạch dưới và dạng chữ của tên biến là không cần thiết

*Read data using V7 rules for variable names; OPTIONS VALIDVARNAME = V7; PROC IMPORT DATAFILE = 'c:\LSB6\Data\CampEquip.txt' OUT = CampEquipment_V7 REPLACE; RUN; DATA CampEquipment_V7; SET CampEquipment_V7; IF Country_of_Origin = 'USA'; PriceDiff = Store_ - Online_; RUN;

Đây là tập dữ liệu CAMPEQUIPMENT_V7

ItemCountry_of_OriginOnline_Store_PriceDiff Lều cabin cho 18 người USA39939902Túi cắm trạiUSA119129103 Tấm lót siêu nhẹUSA69745

Nếu bạn đang đọc các tệp dữ liệu (thông qua PROC IMPORT hoặc công cụ XLSX LIBNAME) có chứa các tiêu đề bao gồm khoảng trắng hoặc ký tự đặc biệt, chúng tôi khuyên bạn nên luôn chỉ định quy tắc VALIDVARNAME= mà bạn muốn sử dụng trong câu lệnh TÙY CHỌN. Bằng cách đó, các chương trình của bạn sẽ luôn chạy bất kể giá trị mặc định cho VALIDVARNAME= trên hệ thống của bạn là bao nhiêu

Để tìm thêm các mẹo lập trình hữu ích hoặc để bắt đầu với SAS, hãy xem ấn bản mới nhất của chúng tôi, The Little SAS Book. A Primer, Phiên bản thứ sáu

Xin chào Aslan,

Vấn đề phải được chia thành ba phần

(1) Lấy một xâu có dạng “123^456” và biến nó thành hai số 123

và 456

(2) Cho hai cặp như vậy ở trên, hãy quyết định cặp nào lớn hơn

(3) In giá trị lớn hơn

Phần đầu tiên là đơn giản nhất. Lấy chuỗi của bạn và chia nó tại

ký tự “^”, sau đó chuyển từng phần thành số nguyên

s = "2847^1349" base, exponent = s.split("^") base = int(base) exponent = int(exponent)

Mặc dù câu đố sử dụng “^” cho lũy thừa (lũy thừa), Python sử dụng

toán tử OPTIONS VALIDVARNAME = value;0

>>> 5**3 # 5*5*5 125

Python có thể tạo ra một số con số thực sự lớn gần như ngay lập tức

x = 96071838452**3207

tính toán gần như ngay lập tức trên máy tính của tôi, không có độ trễ rõ ràng. trên

mặt khác, in x mất nhiều thời gian. nó có hơn 35 nghìn

chữ số. Vì vậy, đừng in giá trị trừ khi bạn có thời gian rảnh rỗi

Vì vậy, để so sánh hai cặp, chỉ cần tính lũy thừa và so sánh

x = base1**exponent1 y = base2**exponent2 if x < y: print(base2, '^', exponent2) elif x > y: print(base1, '^', exponent1) else: print("equal")

Có một bắt. Mặc dù Python có thể tính các số có 35 nghìn chữ số

rất nhanh, nếu con số thậm chí còn lớn hơn thì sao?

Điều gì sẽ xảy ra nếu cơ sở có một triệu chữ số và sức mạnh rất lớn?

những con số quá lớn đến nỗi bạn sẽ hết bộ nhớ và

tính toán hoặc sẽ mất một thời gian rất dài, hoặc sẽ thất bại

Vâng

Bạn có thể yêu cầu một dòng văn bản bằng hàm input(). Điều đó mang lại cho bạn
một chuỗi.

Có vẻ như họ muốn cả hai số trên cùng một dòng, vì vậy hãy gọi đầu vào
chỉ một lần để nhận dòng văn bản, ví dụ:.

________số 8

Biến “dòng” bây giờ sẽ giữ một chuỗi có văn bản

Chuỗi có nhiều phương thức tiện ích khác nhau. Bạn có thể tách() dòng để
xóa khoảng trắng ở đầu và cuối, sau đó tách() kết quả để ngắt
thành “từ”, nghĩa là ở đây chỉ “ .

Phương thức tách lấy một dấu tách tùy chọn, vì vậy bạn có thể tách từng
“từ” thành ký tự số mũ, nhận được hai chuỗi số. Gọi
int() trên mỗi cái đó sẽ cho bạn giá trị nguyên của mỗi cái.

Trong Python, ký tự “^” không phải là lũy thừa. Toán tử lũy thừa
là “**”. Vì vậy, bạn có thể tính toán giá trị lớn thực tế bằng cách sử dụng
toán tử đó; .
like (subject to your computer’s memory), so that will be pretty safe.

Sau đó, bạn chỉ cần so sánh hai giá trị để xác định giá trị nào lớn hơn.
hoặc bạn có thể khéo léo sử dụng hàm max() của Python.

Tìm hiểu tài liệu để biết chi tiết tại

//docs.python/org/3/

Lưu ý cả mục lục và cả chỉ mục, rất hữu ích
để tìm những thứ tùy ý bao gồm các toán tử như “**” và
methods like “split”.

Chúc mừng!
Cameron Simpson cs@cskk. Tôi. au

Có thể sử dụng các ký tự đặc biệt trong biến không?

Tên biến dài tối đa 64 ký tự và chỉ có thể chứa các chữ cái, chữ số và ký tự không có dấu câu (ngoại trừ dấu chấm (. ) được cho phép .

Những ký tự đặc biệt nào không được phép trong Python?

Chúng tôi không thể sử dụng các ký hiệu đặc biệt như . , @, #, $, % v.v.

Chủ đề