初识python,在网上看了老男孩的视频,建立一个博客将自己所学的python知识记录下来。
input加密,用于输入密码的阶段。
import getpass
user = input("username:")
passwd = getpass.getpass("password:")
格式化输出
name = input("name:")
age = int (input("age:"))
job = input("job:") info = '''
__________________%s info_____________________
name=%s
age=%s
job=%s
'''% (name,name,age,job) info2 = '''
__________________{_name} info2_____________________
name={_name}
age={_age}
job={_job}
'''.format (_name=name,
_age=age,
_job=job) info3 = '''
__________________{0} info3_____________________
name={0}
age={1}
job={2}
'''.format(name,age,job)
print("info",info)
print("info2",info2)
print("info3",info3)
info
__________________xiaoming info_____________________
name=xiaoming
age=22
job=it
info2
__________________xiaoming info2_____________________
name=xiaoming
age=22
job=it
info3
__________________xiaoming info3_____________________
name=xiaoming
age=22
job=it
字符串操作
name = "xiaoming" print(name.count("i")) #打印变量中有几个i
print(name.capitalize()) #首字母大写
print(name.casefold()) #大写全部变小写
print(name.center(50,"-"))#字符串需要有50位,如果不够,用“-”补齐(---------------------xiaoming---------------------)
print(name.encode()) #将字符串转换为二进制编码
print(name.endswith("g")) #判断字符串结尾是否为"g",如果是,责返回True,不是责False
print("xiao\tming".expandtabs(1)) #将\t转换为1个空格位
print("My name is {user}".format(user="xiaomgang")) #格式化输出(My name is xiaomgang)
print(name.find("o")) #在字符串中找到"o"的下标
print("My name is {name}".format_map({'name':'xiaogang'})) #格式化输出V2
print("".isdigit()) #判断是否为整数
print("1abcde".isalnum()) #如果 string 至少有一个字符并且所有字符都是字母或数字则返回 True,否则返回 False
print("eEEFAEFXCFCX".isalpha()) #判断是否为a-y ,A-y
print("".isdecimal()) #如果字符串是否只包含十进制字符返回True,否则返回False。
print("1 2 3".index("")) #返回3的位置,空格也算,这里返回的7
print("abc".islower()) #判断是否为小写英文字符
print("".isnumeric()) #如果字符串中只包含数字字符,则返回 True,否则返回 False
print("EFAFADS".isprintable()) #检查字符是否可以打印
print(" ".isspace()) #判断是否为空格
print("my".isidentifier) #判断字符是否可作为变量名称
print("Abc".istitle()) #如果字符串中所有的单词拼写首字母是否为大写,且其他字母为小写则返回 True,否则返回 False.
print("BBB".isupper()) #如果字符串中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是大写,则返回 True,否则返回 False
print("-".join({'xiaoming','xiaomei','xiaogang'})) #将"-"作为分隔符,结果(xiaogang-xiaoming-xiaomei)
print("abc".ljust(10,'@')) #如果不够10位字符责在字段后面用@填充(abc@@@@@@@)
#rjust #在字段前增加
print("111111my name is111 xiaoming 11111".strip('')) #去除头尾字符,中间的不会动,如果参数不加'1'责去除空行(my name is111 xiaoming )
print("1111111abc111111".lstrip('')) #返回截掉字符串左边的空格或指定字符后生成的新字符串。#不加1会去掉回车\n
#rstrip #截掉右边指定的字符
print("AbCdE".lower()) #返回将字符串中所有大写字符转换为小写后生成的字符串(abcde)
p=str.maketrans('abcde','')
print("hello my name is xiaoming ".translate(p)) #abcde对应着12345,print一个字符串时引用上面的策略,(h5llo my n1m5 is xi1oming)
print("my name is xiaoming".partition('name')) #将"name"特别标识起来,左右的字符也标识起来('my ', 'name', ' is xiaoming')
print("My Name is XiaoMing".swapcase()) #大小写互换(mY nAME IS xIAOmING)
print("my name is xiaoming and my dog is wangcai".replace('is','Is',1)) #将is转换为Is,只转换从左至右的第一个匹配到的,如果将1删除,将匹配所有is更改为Is(my name Is xiaoming and my dog is wangcai) print("my name is xiaoming".zfill(40)) #字符如果不够40位,从左边用"0"补齐(000000000000000000000my name is xiaoming)
列表
import copy #列表中数据之间的copy names= ["xiaoming","xiaogang",["daming","damei"],"xiaomei","xiaohong"]
for i in names[::-3]: #切片打印
print(i)
names2 = copy.deepcopy(names) #深copy,copy一次被copy的变量的值后,不受其他因数影响,不会变更,可以理解为,赋值一次,永久存在
names[0] = "小明"
names2= names.copy() #浅copy,列表中可以套列表,浅copy是将第一层的列表数据copy过来,当第一层列表更改后,就无法copy了,更改数据后就不是第一层列表了。
names[2][0] = "DAMING"
print(names)
print(names2) print(names[0],names[-1],names[0:2],names[-2:-1],names[:3],names[-2:]) #分别是,打印第一段,最后一段,最后2段,开头段也就是0段到第二段的数据不包括xiaohong,,倒数第二段到最后一段的数据的数据(['xiaomei', 'xiaohong'])
print(names.count("xiaoming")) #打印变量中有几个"xiaoming"
print(names.index("xiaoming")) #打印变量中的值在第几位(python中的记位方式:0,1,2,3....)
names.clear() #清除列表中的所有的值
names.insert(0,"xiaolizi") #插入一段数据,将原先在第一位的"xiaoming"挤到第二位
names2=["daming","damei"]
names.extend(names2) #在names变量中扩展加入names2变量中的值, 扩展后结果: ['xiaoming', 'xiaogang', 'xiaomei', 'xiaohong', 'daming', 'damei']
names.pop(0) #删除第一个段
names.remove("xiaoming") #根据字段名称删除一个段
del names[0] #删除第一个字段
names.reverse() #翻转,翻转后的结果:['xiaohong', 'xiaomei', 'xiaogang', 'xiaoming']
names.sort() #排序,优先级依次是:特殊符号-》数字-》大写-》小写 测试的结果:['#xiaoming', '1xiaomei', 'Xiaogang', 'xiaohong']
names.append("xiaogangpao") #在最后一行加入一个段
元组中的参数是不可变的,一次定义数据后,后期只能查询无法增加。
test=("xiaoming","xiaogang","xiaohong") #元组,只能查询
test2=[["xiaoming"],["xiaogang"]]
test2.append(["xiaomei"])
select=test.index("xiaohong")
print(test2,test,select)
结果:[['xiaoming'], ['xiaogang'], ['xiaomei']]
('xiaoming', 'xiaogang', 'xiaohong')
2
模块的认识
import os #可调用系统命令在系统中执行操作
import sys
print (sys.path) #打印命令查找路径,如linux中的echo $PATH
print(sys.argv) #打印执行此命令的文件的绝对路径 (['E:/TEST/test.py'])
print(sys.argv[0]) #结果E:/TEST/元组test.py 通过这个方式可以直接获取到绝对路径从而cd进去
abc=os.system("dir") #通过os模块调用系统命令dir查看当前目录下的内容,值无法保存至变量中,按照这种方式保存,abc的值会是0 代表执行成功
abc2=os.popen('dir').read() #将dir读取的内容存储到abc2变量中,可以进行存储
os.mkdir("new_file") #在执行文件同级目录创建一个文件
print("--------",abc,abc2)
如何有颜色的打印一段话?
name="xiaoming"
age = 22
print("welcome to china %s your age is \033[32;1m%s\033[0m"%(name,age)) #32,绿色 31,红色 42背景绿 41背景红 welcome to china xiaoming your age is