if __name=='__main'
这就代码的作用是既能保证当前的.py能直接运行,也能保证其作为模块被其他.py文件导入
比如说,abc.py的代码如下:
def printHELLO():
print('Hello World!')
print(__name__)
if __name__ == '__main__':
printHELLO()
只运行当前代码 输出 Hello World! __main__
如果在 xyz.py 中调用 abc.printHELLO() 会输出 Hello Word!abc
如果没有if那一行,则在引入abc的时候就会调用 printHELLO
列表解析式
列表解析式是Python提供的一种从列表中便捷地抽取数据的方式,类似于数学上集合的表示方式,实际上可完全由for循环替代。
语法:[w for w in text if condition]
例如:list = [1,2,3,4]
even = [i for i in list if i%2==0]
输出 even = [2,4]
变量的命名和使用
① 变量名只能包含字母、数字和下划线。不能以数字打头,可用字母和下划线打头。
② 变量名不能包含空格。
③ 不要将Python关键字和函数名用作变量名
④ 变量名应既简短又具有描述性
⑤ 慎用小写字母 l 和大写字母 O ,因为它们可能被人错看成数字1和0
补充:函数名(模块名)应只使用小写字母和下划线,并指定描述性名称。
方法
定义:Python可对数据执行的操作,例如:
name = "ada lovelace"
print(name.title()) # 以首字母大写的方式显示每个单词,输出Ada Lovelace
print(name.upper()) # 输出ADA LOVELACE
print(name.lower()) # 输出ada lovelace
注释
Python中有单行注释和多行注释,单行以 # 开头,多行用三个 ' 或三个 " 括起来,例如:
# 这是一个注释
print("Hello, World!")
'''
这是多行注释
用三个单引号
'''
print("Hello, World!")
"""
这是多行注释
用三个双引号
"""
print("Hello, World!")
字符串
字符串 就是一系列字符。
在Python中,用引号括起的都是字符串,无论是单引号还是双引号,如下所示:
"This is a string"
'This is also a string'
有了这种灵活性,我们就能在字符串中灵活地包含引号和撇号:
'I told my friend, "Python is my favorite language!"'
"The language 'Python' is named after Monty Python, not the snake"
"I'm very upset" # 如果在单引号括起的字符串中使用撇号,就将导致错误
合并/拼接字符串
Python使用 + 来合并字符串,例如:
first_name = "Ada"
full_name = first_name + " " + "Lovelace"
使用制表符或换行符来添加空白
空白:任何非打印字符,如空格、制表符和换行符。
print("Language:\n\tPython")
删除空白
使用方法rstrip()
language = "Python "
language.rstrip() # 输出Python,不带空格,但是不改变变量值,和强制转换差不多
lstrip(), strip()和上面类似,分别删除开头的空白和两端的空白
Python2中的print语句
Python2中的print语句稍有不同,print "Hello Python!"
2中有的包括括号,有的不包括
整数
Python中,可对整数执行 + - * / ** 运算,**是乘方运算
注意:/ 运算直接算出小数,不像C/C++中那样
浮点数
Python中带小数点的数都叫浮点数。
从很大程度上说,使用浮点数时都无需考虑其行为,Python通常会按你预期的方式处理它们
使用函数str()避免类型错误
age = 23
message = "Happy " + age + "rd Birthday!"
上面程序会报错,因为Python不知道23是数值23还是字符2和3,类似这种情况,就需要显式地指明:
message = "Happy " + str(age) + "rd Birthday!" # str()将非字符串值表示为字符串
Python2中的整数
只有除法不同:
>>>3 / 2
1
这个结果就类似C/C++了,整数除法的结果只包含整数部分,小数部分直接删除。为了避免可以引入浮点数:
>>>3.0 / 2
1.5
python3 输出
输入一维数组
方法一:num = [int(n) for n in input.split()]
方法二:num = list(map(int, input.strip().split()))
输入二维数组
n = int(input()) # 输入二维数组的行数和列数
line = [[0]*n]*n # 初始化二维数组
for i in range(n):
line[i] = input().split(" ") # 输入二维数组,同行数字用空格分隔,不同行则用回车换行
# line[i] = [int(j) for j in line[i]] # 输入数字