北京红枣科技-PythonWeb工程师

1.__new____init__的区别?
  • __new__是一个静态方法,而__init__是一个实例方法.
  • __new__方法会返回一个创建的实例,而__init__什么都不返回.
  • 只有在__new__返回一个cls的实例时后面的__init__才能被调用.
  • 当创建一个新实例时调用__new__,初始化一个实例时用__init__.
2. read和readline以及readlines的区别?
  • read:读取整个文件
  • readline: 读取下一行, 使用生成器方法
  • readlines: 读取整个文件到一个迭代器以供我们遍历
3.写一个函数,计算一个给定的日期是该年的第几天
def count(year, month, day):
    count = 0
    # 判断该年是平年还是闰年
    if year % 400 == 0 or (year % 4 == 0 and year % 100 != 0):
        print('%d年是闰年,2月份有29天!' % year)
        li1 = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
        for i in range(month - 1):
            count += li1[i]
        return count + day
    else:
        print('%d年是平年,2月份有29天!' % year)
        li2 = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
        for i in range(month - 1):
            count += li2[i]
        return count + day


if __name__ == "__main__":
    year = int(input('请输入年份:'))
    month = int(input('请输入月份:'))
    day = int(input('请输入日期:'))
    count = count(year, month, day)
    print('%d年%d月%d日是今年的第%d天!' % (year, month, day, count))
4.字典有那些常用的内置方法?
  • cmp(dict1, dict2):比较两个字典元素。
  • len(dict): 计算字典元素的个数,即键的总数。
  • str(dict):输出字典可打印的字符串表示。
  • dict.clear(): 删除字典内所有的元素。
  • dict.copy(): 返回一个字典的浅复制。
  • dict.fromkeys(seq[,val]): 创建一个新字典,以序列seq中元素做字典的键,val为字典所有键对应的初始值。
  • dict.get(key, default=None): 返回指定键的值,如果值不在字典中返回default值。
  • dict.has_key(key): 如果键再字典dict中返回true,否则返回false。
  • dict.items(): 以列表返回可遍历的(键、值)元祖数组。
  • dict.keys(): 以列表返回一个字典所有的键。
  • dict.setdefault(key, default=None): 和get()类似, 但如果键不存在于字典中,将会添加键并将值设为default。
  • dict.update(dict2): 把字典dict2的键/值对更新到dict里。
  • dict.values(): 以列表返回字典中所有的值。
  • pop(key[,default]): 删除字典给定键key所对应的值,返回值为被删除的值,key值必须给出,否则,返回default的值。
  • popitem(): 随机返回并删除字典中的一对键和值。
5. 有两个磁盘文件A和B,各存放一行字母,要求把这两个文件中的信息合并(按字母顺序排列),输出到一个新文件C中。
f1 = open("A.txt")
f1_txt = f1.readline()
f2 = open("B.txt")
f2_txt = f2.readline()
f3_txt = f1_txt + f2_txt

f3_list = sorted(f3_txt)

for f3 in f3_list:
    with open("C.txt", "a+") as f:
        f.write(f3)
6.实现用户登录,要求输错第一次则提醒“输错三次账户将被锁定”,输错第二次则提醒“已错误输入两次!”输错第三次则提示“当日拒绝再次登录!”
count = 0    #计数器
username = "aaa"  #登录用户名
userpassword = "asd"   #登录密码
f = open("aaa.txt","r")
file_list = f.readlines()
f.close()
lock= []
name = input("登录用户名:")
for i in file_list:1
    line = i.strip("\n")
    lock.append(line)
if name in lock:
    print("你的账户已锁定,请联系管理员。")
else:
    if name == username:
    #如果密码连续输错了三次,锁定账号
        while count <3:
            password = input("登录密码:")
            if name == username and password == userpassword:
                print("欢迎%s!"%name)
                break
            else:
                print("账号和密码不匹配")
                count +=1
        else:
            print("对不起,您的账号连续输错三次密码已被锁定,请联系管理员。")
            f = open("aaa.txt","w+")
            li = ['%s'%username]
            f.writelines(li)
            f.close()
    else:
        print("用户名不存在,请输入正确的用户名。")
7.有一个字符串开头和末尾都有空格,比如“ adabdw ”,要求写一个函数把这个字符串的前后空格都去掉。
def romve_spce(str):
    new_str = str.strip()

    return new_str

 new_str = romve_spce("    adanadnd   ")
 print(new_str)
8. 如果当前的日期为20170130,要求写一个函数输出N天后的日期,(比如N为2,则输出20170201)。

import datetime


def get_day(y,m,d,n):
    the_date =datetime.datetime(y,m,d)
    result_date = the_date + datetime.timedelta(days=n)
    d = result_date.strftime("%Y-%m-%d")
    return d


print(get_day(2018,3,25,1))
9.数据库表A中有姓名fname的数据类型为varchar(20),要求使用SQL语句修改改字段的数据类型为nvarchar2(50)。
ALERT TABLE A MODIFY COLUMN fname nvarchar(50);  
10.数据库表A中有姓名fname、年龄fage两个字段,要求使用SQL语句查出姓名重复的人的姓名和重复条数。
select name, count(*) from A group by fname;
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值