【引言】Seven-Eleven(logo:7-ELEVEn),已成為便利商店的國際共通語言,商店遍布美國、日本、中國大陸、新加坡、臺灣、馬來西亞、菲律賓、瑞典、墨西哥、巴拿馬、挪威、加拿大、澳大利亞、印尼等國家和地區,目前全球店面數目逾三萬家,為全球最大連鎖店體系,

那么,問題來了:你有沒有關注到這樣一個問題:
7-ELEVEn 中的“n” 到底為什么要小寫?
網上有很多版本的解說,以下兩個版本較為“靠譜”:
1. 來自老板妻子的意見
該公司的logo更換過幾次,1969年以后才是小寫n,因為創始人湯普森(Joe C. Thompson)的妻子覺得全部大寫有點過于生硬、呆板,于是建議把 N 換成小寫會柔和、友善一些,這個說法目前是全網最令人信服的,看來“成功男人背后都有偉大女人”的敘事方式永不過時,女性視角往往是大直男所想不到的,后來證明這一調整確實比原來的順眼多了!
2.出于“風水”的原因
這個原因聽著挺扯,不過,似乎更得東方人的心,大寫的 N 的最后一筆向上,意味著“(財富)出去”,即“散財”;而小寫 n 的最后一筆向下,形成一個包圍,意味著“聚財”,這套風水說辭,應該不是美國人想出來的,可能是某個東亞網友 YY 的吧,后來普遍得到整個東亞地區人們的認同,
答案有點匪夷所思吧!至于究竟為什么?反正我不確定,我只是想借此小故事引出一個大家都熟知的重要結論:
python是字母大小寫敏感的編程語言!
具體有哪些需要關注的大小寫問題:
1. 變數名
比如,Number 和 number 就是兩個不同的變數:
>>> Number = 1
>>> number = 2
>>> Number, number
(1, 2)
>>>
# 變數名可以包括字母、數字、下劃線,不能以數字開頭,且最好也不能用關鍵字,
2. 匯入模塊名
匯入模塊時,名稱大部分是“全小寫”的,但也有好多異類,比如PIL, PyQt5, cProfile等:
>>> import PIL, PyQt5, cProfile
>>> import pil
Traceback (most recent call last):
File "<pyshell#20>", line 1, in <module>
import pil
ModuleNotFoundError: No module named 'pil'
>>> import pyqt5
Traceback (most recent call last):
File "<pyshell#21>", line 1, in <module>
import pyqt5
ModuleNotFoundError: No module named 'pyqt5'
>>> import cprofile
Traceback (most recent call last):
File "<pyshell#22>", line 1, in <module>
import cprofile
ModuleNotFoundError: No module named 'cprofile'
>>>
>>> import os, sys, math
>>> import OS
Traceback (most recent call last):
File "<pyshell#24>", line 1, in <module>
import OS
ModuleNotFoundError: No module named 'OS'
>>> import Sys
Traceback (most recent call last):
File "<pyshell#25>", line 1, in <module>
import Sys
ModuleNotFoundError: No module named 'Sys'
>>> import Math
Traceback (most recent call last):
File "<pyshell#26>", line 1, in <module>
import Math
ModuleNotFoundError: No module named 'Math'
>>>
3. 關鍵字大部分全小寫
大部分關鍵字都是“全小寫”的,'False', 'None', 'True' 除外:
>>> import keyword
>>> keyword.kwlist
['False', 'None', 'True', 'and', 'as', 'assert', 'async', 'await', 'break',
'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally',
'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal',
'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']
4. 列舉類變數一般全大寫
比如:
>>> from enum import Enum
>>> class Weekday(Enum):
MONDAY = 0
TUESDAY = 1
WEDNESDAY = 2
THURSDAY = 3
FRIDAY = 4
SATURDAY = 5
SUNDAY = 6
>>> Weekday.SUNDAY
<Weekday.SUNDAY: 6>
>>>
5.模塊中定義的常量多數為全大寫
比如:
>>> import re
>>> re.IGNORECASE
re.IGNORECASE
>>> re.ASCII
re.ASCII
>>> re.UNICODE
re.UNICODE
>>> re.MULTILINE
re.MULTILINE
>>>
6. 爬蟲實體中的大小寫
在分析爬取出的網頁中,“變數名以及變數讀取出的變數值”,還有“網址中的引數”等等都要考慮到字母大小寫問題,以下是我在練習做爬蟲中碰到的實體,一不小心出過好多bug:
content = ('Java','JavaScript','Python')
website = 'http://*****.com/xxxx?xx='
userName = ['Abc','HannYang',......]for c in content:
rank,ids = [],[]
url = website + c.lower()
res = requests.get(url,headers={'User-Agent':agent}).json()
if res["code"] == 200:
data = res["data"]['RankListItem']
rank += [r for r in data]
count = 0
for i,r in enumerate(rank):
if r['userName'].lower() in userName:
......【解決方法】
1. 在字串比較時雙方都用upper()或lower()
2. 或者用正則運算式時使用IGNORECASE標志
Python中還有哪些大小寫問題需要特別關注的?有想到的請留言補充——
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/306438.html
標籤:python
