目录
- 一、 用户输入函数 input()
-
- name = input('Username:')
- print(name)
-
-
- 二、字符串内引用变量,格式化输出。
-
- 1. %s 字符串 ;%d 整数类型 ;%f 浮点数类型
- info = 'name = %s age = %d num = %f' % ('zjl',18,1.1)
- print(info)
- #name = zjl age = 18 num = 1.100000
-
- 2. format函数
- info = '姓名 {name} ;年龄 {age} ;num {num}'.format(name='zjl',age=18,num=20)
- info = '姓名 {0} ;年龄 {1} ;num {2}'.format('zjl',18,20)
- print(info)
- #姓名 zjl ;年龄 18 ;num 20
-
- 3. 定义变量 name age num,f'{name}' 引用
- info = f'姓名 {name} ;年龄 {age} ;num {num}'
-
-
- 三、密码 秘文函数 getpass
- import getpass
- name = input('Your username:')
- password = getpass.getpass('Your Password:')
- print(name,password)
-
-
- 四、流程判断语句
- 1.
- if n == 1:
- print('值为1')
- elif n == 2:
- print('值为2')
- else:
- print('1和2都不对!')
-
- 2.
- while xxx:
- if xxx:
- break
- else:
- xxx
- else:
- xxxxxx
-
- continue 跳出这一次循环
- break 跳出此循环,后面不再执行
- pass 什么都不做,返回循环
- exit() 退出,可输出自定义内容
-
-
- 五、 range函数
- for i in range(1,10,2):
- print(i)
- #步长为2,输出 1 3 5 7 9
sys、os模块
三元运算、编码与解码
列表
元组
字符串常用参数
字典
- 1. sys模块
- import sys
- print(sys.path) #打印环境变量
- sys.argv[1] #参数1
-
- 2. os模块
- import os
- txt = os.system('dir') #执行系统命令 输出到屏幕,不保存结果
- txt = os.popen('dir').read() #执行系统命令并保存结果到临时的内存地址中,通过read从内存地址读取内容
- os.mkdir('new_dif') #创建目录
- 1.三元运算
- a,b,c = 1,3,5
- d = a if a < b else c
- print(d) #值为1
-
- 2.编码与解码
- Python3中内存里的所有字符都是unicode,unicode是万国码
- python3文件默认编码是 utf-8
- python2文件默认编码是 ASCII
-
- GBK编码:decode解码 转换为 Unicode:encode编码 转换为 utf-8
- 任意编码转换成Unicode的过程,都叫解码;Unicode转换成其他编码都要编码
-
- msg.encode(encoding='utf-8') # 编码,encoding用于指定将原字符编码为什么格式的字符
- msg2.decode(encoding='utf-8') # 解码,encoding用于指定进行解码时采用的字符编码,与字符的编码类型一致
-
- 例:gbk编码字符在mac电脑中如何不显示乱码
- Python2中:gbk转换为unicode
- gbk_msg = '我爱北京天安门' # gbk格式的字符
- unicode_msg = gbk_msg.decode() # 解码为unicode字符
- print(unicode_msg)
-
- python3中: gbk转成unicode转换utf-8
- msg = '我爱北京天安门' # utf-8字符
- gbk_msg = msg.encode('gbk') # 编码为gbk字符
- unicode_msg = gbk_msg.decode('gbk') # 使用gbk去解码,成为unicode字符
- utf_8_msg = unicode_msg.encode('utf-8') # 将unicode编码为utf-8
-
-
-
-
- list = [0,1,2,3,4,5]
-
- 列表切片
- print(list[0:3]) # [0, 1, 2]
- print(list[-3:]) # [3, 4, 5]
- print(list[0:6:2]) # [0, 2, 4] 步长为2
-
- 列表增删改查
- list.append(6) # 在列表结尾添加元素 [0, 1, 2, 3, 4, 5, 6]
- list.insert(3,'test') # 指定下标添加元素 [0, 1, 2, 'test', 3, 4, 5, 6]
- list[3] = 'test2' # 指定下标修改元素 [0, 1, 2, 'test2', 3, 4, 5, 6]
-
- list.remove('test') # 指定元素名称删除 [0, 1, 2, 4, 5]
- del list[2] # 指定下标删除元素 [0, 1, 3, 4, 5]
- list.pop() # 默认删除结尾元素,也可指定下标删除元素 [0, 1, 2, 3, 4]
-
- 其他用法
- print(list.index('test')) # 查找列表中'test'元素的下标值
- print(list.count('test')) # 查找列表中'test'元素的数量
- list.clear() # 清空列表内容
- list.reverse() # 将列表内容元素的顺序反过来
- list.sort() # 将列表内容元素排序,特殊符号>数字>大写字母>小写字母
- list.extend(list2) # 将list2列表元素合并到list】
-
- list.copy() # 浅copy,只复制第一层,第二层指向内存地址
- name1 = ['ai','bi','ci',['yy','dd'],'di']
- name2 = name1.copy()
- name1[0] = 'zi'
- name1[3][0] = 'zz'
- print(name1) # ['zi', 'bi', 'ci', ['zz', 'dd'], 'di'] 修改第一层不影响
- print(name2) # ['ai', 'bi', 'ci', ['zz', 'dd'], 'di'] 修改第二层会影响,都会改掉
-
- '''
- import copy
- name2 = copy.copy(name1) # 也是浅copy
- name2 = copy.deepcopy(name1) #深 copy,完全复制一份,不受影响
- '''
元组和列表差不多,只不过它一旦创建便不能在修改,所以也叫只读列表。
- names = ('alex','jack','tom','lili')
- # 他只有两个方法,count和index
- name = 'jack'
- name.capitalize() #首字母大写
- name.title() #空格分隔的每段内容的首字母大写
- name.count('j') #统计字符串中'j'的数量
- name.endswith('ck') #判断字符是否以’ck‘结尾
- name.startswith('j') #判断字符是否以’j‘开头
- name.isalnum() # 判断字符串是否为阿拉伯数字,包含字母和数字
- name.isalpha() # 判断字符串是否为纯英文字符
- name.isdigit() # 判断字符串是否为整数
- name.isspace() # 判断字符串是否为空格
- name.expandtabs(tabsize=30) #如果字符串中包含'\t',将table键转换为30个空格
- name.find('a') #查找字符a的索引
-
- name = 'name is {name} and {year} olds'
- 1.字符串内引用变量
- print(name.format(name='XiaoMing',year=18))
- #name is XiaoMing and 18 olds
- 1.字符串内引用变量,传递参数以字典的格式
- print(name.format_map({'name':'XiaoLi','year':20}))
- #name is XiaoLi and 20 olds
-
- 2.自定义连接符拼接字符串或列表中元素的值,列表中的元素也要是字符串类型
- print('_'.join('123'))
- #1_2_3
- print("_".join(['1','2','3']))
- #1_2_3
-
- 3.在字符串两边,添加50个长度的'_'
- name = 'jack'
- print(name.center(50,'_'))
- #_______________________jack_______________________
-
- 3.字符串长50,长度不够后面用*补全
- print(name.ljust(50,'*'))
- #name is {name} and {year} olds*******************
-
- 4.字符串长50,长度不够前面用*补全
- print(name.rjust(50,'*'))
- #*******************name is {name} and {year} olds
-
- 5.把字符中字母全部转换为小写
- print(name.lower())
-
- 6.把字符中字母全部转换为大写
- print(name.upper())
-
- 7.去除字符串两边的空格和换行,lstrip只去除左边的,rstrip只去除右边的
- print(name.strip())
-
- 8.转换替换字符串中多个字符的值
- passwd = str.maketrans('abcde','123yz') # 将'abcde'分别对应成'123yz'
- print('fabcdef'.translate(passwd)) #传入转换的字符
- #f123yzf
-
- 9.替换字符串内某个字符的值
- print('AAaBB'.replace('AAa','BB')) # 将字符串中 AAa 替换为 BB
- #BBBB
-
- 10.默认以空格将字符串转换为列表
- print('A B CD'.split())
- #['A', 'B', 'CD']
- print('A B CD'.split('B'))
- #['A ', ' CD']
-
- .splitlines()以换行符将字符串转换为列表,与 name.split('\n')效果相同
字典是一种key-value的数据类型。特性:字典是无序的,没有下标;key必须是唯一的,所以天生去重。
- student_dict = {
- 'student1':'XiaoLi',
- 'student2':'XiaoYao',
- 'student3':'XiaoZZ',
- }
-
- 1.字典的增删改查:
- student_dict['student1'] = 'XiaoAA' # 改
-
- student_dict['student4'] = 'ZhangSi' # 增
-
- .setdefault 增加元素,若该key已经存在,则不修改;若key不存在,则创建。
- student_dict.setdefault('student4',['CehngLong','XiaoZi'])
-
- del student_dict['student4'] # 删除
- student_dict.pop('student1') # 删除
-
- print(student_dict.get('student4')) # 查,返回value;若没有此key,返回None
- print('student4' in student_dict) # 返回True或False
- print(student_dict['student3']) # 查,返回value;若没有则会报错
-
- 2.打印字典的所有value
- print(student_dict.values())
- #dict_values(['XiaoAA', 'XiaoYao', 'XiaoZZ', 'ZhangSi'])
-
- 3.打印字典的所有key
- print(student_dict.keys())
- #dict_keys(['student1', 'student2', 'student3', 'student4'])
-
- 4. .update 合并两个字典内容,重复的key 值会覆盖掉,新的key value会创建
- student_dict = {
- 'student1':'XiaoLi',
- 'student2':'XiaoYao',
- 'student3':'XiaoZZ',
- }
-
- student2 = {
- 'student1':'AAaa',
- 'student4':'Xx'
- }
-
- student_dict.update(student2)
- print(student_dict)
- # {'student1': 'AAaa', 'student2': 'XiaoYao', 'student3': 'XiaoZZ', 'student4': 'Xx'}
-
-
- 5. 将字典转换为列表
- print(student_dict.items())
- # dict_items([('student1', 'AAaa'), ('student2', 'XiaoYao'), ('student3', 'XiaoZZ'), ('student4', 'Xx')])
-
- 6. .fromkeys 初始化一个字典,将列表中的所有key赋值同一个value;也可用作修改现有字典中多个key为同一个value
- #注意:类似于浅copy,修改第一层数据互不影响,第二层数据指向内存地址 若修改都会受影响
- NewDict = dict.fromkeys(['Aa','Bb','Cc'],100)
- print(NewDict)
- #{'Aa': 100, 'Bb': 100, 'Cc': 100}
- NewDict['Aa'] = 90
- print(NewDict)
- #{'Aa': 90, 'Bb': 100, 'Cc': 100}
-
- NewDict2 = dict.fromkeys(['Aa','Bb','Cc'],['number',100])
- NewDict2['Aa'][1] = 90
- print(NewDict2)
- #{'Aa': ['number', 90], 'Bb': ['number', 90], 'Cc': ['number', 90]}
-
- 7.遍历字典的key和value
- for i in NewDict:
- print(i,NewDict[i])
-
- # .items此方式有一个字典转换列表的过程,如果数据量大不建议用此方式
- for k,v in NewDict.items():
- print(k,v)
-
- #
- Aa 90
- Bb 100
- Cc 100