python中数字有四种类型:整数int、布尔型bool、浮点数float和复数complex(如1 + 2i)
2. 字符串(String)
-
python字符串不区分单双引号
-
使用三引号(''' 或 """)可以指定一个多行字符串,这也是注释符的原理。
str = '''1 2 3''' print(str) 输出1\n2\n3
-
转义符 \
-
字符串可以用 + 运算符连接在一起,用 * 运算符重复。 print("this " + "is " + "string") # this is string print("q" * 3) # qqq
-
print("apple"[0]) # a print("apple"[-1]) # e
-
python中字符串是不可变类型,即无法直接修改字符串的某一位字符。
str = 'apple' str = 'qwe' # 这是OK的,因为你变得是变量的赋值。 str[0] = 'p' # 你在篡改字符串'qwe':TypeError: 'str' object does not support item assignment
-
Python 没有单独的char型,一个字符就是长度为 1 的字符串
-
字符串的截取的语法格式如下:变量[从哪:取不到哪:步长]
str = '0123456789' print(str[1:5:2]) # 13 print(str[2:5]) # 234 print(str[5:]) # 56789
空行
函数之间或类的方法之间用空行分隔,表示一段新的代码的开始。类和函数入口之间也用一行空行分隔,以突出函数入口的开始。
空行与代码缩进不同,空行并不是 Python 语法的一部分。书写时不插入空行,Python 解释器运行也不会出错。但是空行的作用在于分隔两段不同功能或含义的代码,便于日后代码的维护或重构。
等待用户输入
str = input("\n\n按下 enter 键后退出。")
print(str)
当我输入123然后按下enter,输出123
同一行显示多条语句
Python 可以在同一行中使用多条语句,语句之间使用分号 ; 分割
str = input("\n\n按下 enter 键后退出。"); print(str)
代码块
缩进是相同的一组语句构成一个代码块,我们称之代码组。像if、while、def和class这样的复合语句,首行以关键字开始,以冒号( : )结束,该行之后的一行或多行代码构成代码组。我们将首行及后面的代码组称为一个子句(clause)。
if expression :
suite
elif expression :
suite
else :
suite
print 不换行输出
print 默认输出是换行的,如果要实现不换行需要在变量末尾加上 end="":
print('qwe', end = '') print('asd') # qweasd\n print('an', end = 'apple') # anapple
import 与 from...import
-
将整个模块(somemodule)导入,格式为: import somemodule
-
从某个模块中导入某个函数,格式为: from somemodule import somefunction
-
从某个模块中导入多个函数,格式为: from somemodule import firstfunc, secondfunc, thirdfunc
-
将某个模块中的全部函数导入,格式为: from somemodule import *
len()
print(len('qwe')) # 3
print(len([1, 2, 3])) # 3
# 准确地说,字符串 元组 列表 集合 字典都能测长度
类似python -V,我们自己写的脚本也可以带入命令行参数,像python sqlmap -u "url"这样,格式如下:
$ python test.py arg1 arg2 arg3 # 参数支持短选项模式 - 和长选项模式 --。
-
Python 可以所用 sys 的 sys.argv 来获取命令行参数。
cmd输入python test.py -e
import sys
print(sys.argv) # ['test.py', '-e'] # 可见sys.argv从命令的脚本名开始截取到末尾,返回列表
print(sys.argv[1]) # -e
print(len(sys.argv)) # 2
print(sys.argv[2]) # IndexError: list index out of range
-
也可以用 getopt 模块(译:得到选项)来获取命令行参数。sys和getopt应搭配使用。附:getopt是一个非常容易入门的命令行工具,函数少,适合轻量的Python命令行交互工具的开发。若项目大型一点,还是推荐使用 optparse。毕竟官方也说了嘛:
getopt.getopt(sys.argv[1:], options[, long_options])
# 参数一是要解析的命令行参数列表。参数二是一个字符串,由短选项组成,(短选项仅一个单词长),短选项后缀冒号 : 表示该选项必须有附加的参数,不带冒号表示该选项不附加参数。例如'iuh:'或者'-i-u-h:'。参数三是列表,长选项后缀=表示如果设置该选项,必须有附加的参数,否则就不附加参数
# 返回值是([(option1, value1) ,(option2, value2) ,...], [par1, par2])
# 函数会从参数一中逐个匹配参数二列举的单个单词,若匹配到,再看单词是否必须有附加的参数即冒号,然后将这样一组结果以元组形式放入 返回值[0]中。而返回值[1]是那些没有 - 或 -- 的参数组成的列表。
print(getopt.getopt(sys.argv[1:], '-i-u-h:'))
# 当cmd输入python .\1.py -i -h '123' '456' '789',(因为是匹配,所以-i -h顺序随便,但是长短选项一定要在无选项参数之前,例如python 1.py '123' -i是错的,函数看到无选项会以为已经含选项已经over了。)
# 输出([('-i', ''), ('-h', '123')], ['456', '789'])
# 上行函数会在参数一中匹配‘i’ 'u' 'h',匹配到'i' 'h',
# ‘i’不带参数,故('-i', ''),'h'带参数,故('-h', '123')
# 余下'456' '789',放入 返回值[1]
# 当cmd输入python .\1.py -i -o -h '123' '456' '789'
# 报错:getopt.GetoptError: option -o not recognized
# 然后短选项模式也就26个字母,短选项短导致意义模棱两可,且少导致不够用。长选项就很不错。
print(getopt.getopt(sys.argv[1:], '-i-u-h:', ['name=', 'pwd']))
# cmd输入python .\1.py -i -h '123' --name 'iris' -u --pwd '456' '789'
# 输出([('-i', ''), ('-h', '123'), ('--name', 'iris'), ('-u', ''), ('--pwd', '')], ['456', '789'])
# 如果你把输入删去'iris',你会得到
# ([('-i', ''), ('-h', '123'), ('--name', '-u'), ('--pwd', '')], ['456', '789'])
sys.exit()
通过引发SystemExit异常来退出
共有 0 条评论