7.26 学习笔记
#注册。登录
'''
username=input('请输入要注册的用户名:')
password=input('请输入要注册的密码:')
with open('lisw_of_users',mode='w+',encoding='utf-8') as l:
l.write('{}\n{}'.format(username,password))
print('恭喜,注册成功!')
s=3
while 1:
s=s-1
if s==-1:
print('要脸吗?')
break
username1 = input('请输入用户名:')
password1 = input('请输入密码:')
if username==username1 and password==password1 :
print('登陆成功')
break
else:print('登录失败,你还有{}次机会'.format(s))
continue
'''
#功能详解:
'''
o=open('log',mode='r+',encoding='utf-8')
print(o.read())
o.seek(6)
o.write('加入')
o.seek(0)
o.readable()
print(o.tell())
print(o.read(12))
o.close()
o=open('log',mode='r+',encoding='utf-8')
line1=o.readline() #读取一行
print(line1)
o.seek(0)
line2=o.readlines() #将每行写成列表形式: ['abcdef加入mnopqrst\n', 'abcdefghijklmnopqrst']
print(line2)
o.truncate(3) #将源文件截取为的字符长度
o.seek(0)
print(o)
'''
#考试题https://www.cnblogs.com/anzhangjun/p/8335372.html
'''
1、执行 Python 脚本的两种方式
终端和交互模式
6、声明变量注意事项有那些?
变量名只能是 字母、数字或下划线的任意组合
变量名的第一个字符不能是数字
以下关键字不能声明为变量名
['and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'exec', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'not', 'or', 'pass', 'print', 'raise', 'return', 'try', 'while', 'with', 'yield']
最好不好和python内置的东西重复
7、如有一下变量 n1=5,请使用 int 的提供的方法,得到该变量少可以用多少个二进制位表示?
1 n1=5
2 v = int(n1.bit_length())
3 print(v)
什么是迭代?
利用 for 循环来遍历一个列表(list)或元组(tuple),将值依次取出,这种方法我们称为迭代。
a.利用下划线将列表的每一个元素拼接成字符串,li="alexericrain"
1 li = "alexericrain"
2 v = "_".join(li)
3 print(v)
23、Python2 中的 range 和 Python3 中的 range 的区别?
python2直接就在内存中创建出来
pyhotn3没有在内存中创建出来,需要使用for循环才会创建出来
29、开发敏感词语过滤程序,提示用户输入内容,如果用户输入的内容中包含特殊的字符:
如:"苍老师"“东京热”,则将内容替换为***
1 #!/usr/bin/env python
2 # -*- coding:utf-8 -*-
3 #Author: nulige
4
5 n1 = input("请输入:")
6 m = str.maketrans("苍老师", "***")
7 a = str.maketrans("东京热", "***")
8 new_v = n1.translate(m).translate(a)
9 print(new_v)
'''
#函数总结
'''
#返回值
#返回值的3种情况
# 没有返回值 —— 返回None
# 不写return
# 只写return:结束一个函数的继续
# return None —— 不常用
# 返回1个值
# 可以返回任何数据类型
# 只要返回就可以接收到
# 如果在一个程序中有多个return,那么只执行第一个
# 返回多个值
# 用多个变量接收:有多少返回值就用多少变量接收
# 用一个变量接收: 得到的是一个元组
#站在实参的角度上:
#按照位置传参
#按照关键字传参
#混着用可以:但是 必须先按照位置传参,再按照关键字传参数
# 不能给同一个变量传多个值
#站在形参的角度上
#位置参数:必须传,且有几个参数就传几个值
#默认参数: 可以不传,如果不传就是用默认的参数,如果传了就用传的
#只有调用函数的时候
#按照位置传 : 直接写参数的值
#按照关键字: 关键字 = 值
#定义函数的时候:
#位置参数 : 直接定义参数
#默认参数,关键字参数 :参数名 = '默认的值'
#动态参数 : 可以接受任意多个参数
#参数名之前加*,习惯参数名args,
#参数名之前加**,习惯参数名kwargs
#顺序:位置参数,*args,默认参数,**kwargs
# 动态参数有两种:可以接受任意个参数
#*args : 接收的是按照位置传参的值,组织成一个元组
#**kwargs: 接受的是按照关键字传参的值,组织成一个字典
#args必须在kwargs之前
'''
'''
#函数练习
def cs(name,sex='m'): #后有两点
print('%s:%s'%(name,sex))
return sex #记住输出样式,c语言风格,format风格和,
cs('wusir')
def cd(*args,**kwargs):
print(args,kwargs)
return
cd(1,2,3,4,5,s6='m',s7=2) #一个*出元祖,按位置 两个*出字典,按键值对
#函数的注释
# def func():
# '''
# 这个函数实现了什么功能
# 参数1:
# 参数2:
# :return: 是字符串或者列表的长度
# '''
# pass
#动态参数的另一种传参方式
# def func(*args):
# z=0
# for i in args:
# z+=i
# print(z)
# func(1,2,3,7,1,5,6,3,4,)
## 站在实参的角度上,给一个序列加上*,就是将这个序列按照顺序打散
# def func(*args):
# print(args)
# pass
#
# func(1,2,3,4,5) #站在形参的角度上,给变量加上*,就是组合所有传来的值。
# l = [1,2,3,4,5] # 站在实参的角度上,给一个序列加上*,就是将这个序列按照顺序打散
# func(*l)
# def func(**kwargs):
# print(kwargs)
# d = {'a': 1, 'b': 2}
# func(**d)
#func(s=3,d=9,l=0)
不用羡慕他人,只管静心钻研这一刻!