本文主要是介绍7-ELEVEn中的“n”为啥要小写?答案匪夷所思...,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
【引言】Seven-Eleven(logo:7-ELEVEn),已成为便利商店的国际共通语言,商店遍布美国、日本、中国大陆、新加坡、台湾、马来西亚、菲律宾、瑞典、墨西哥、巴拿马、挪威、加拿大、澳大利亚、印尼等国家和地区。目前全球店面数目逾三万家,为全球最大连锁店体系。
目录
python是字母大小写敏感的编程语言!
1. 变量名
2. 导入模块名
3. 关键字大部分全小写
4. 枚举类变量一般全大写
5.模块中定义的常量多数为全大写
6. 爬虫实例中的大小写
那么,问题来了:你有没有关注到这样一个问题:
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 = 0TUESDAY = 1WEDNESDAY = 2THURSDAY = 3FRIDAY = 4SATURDAY = 5SUNDAY = 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中还有哪些大小写问题需要特别关注的?有想到的请留言补充——
这篇关于7-ELEVEn中的“n”为啥要小写?答案匪夷所思...的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!