做一个登陆的文件操作,存到文件中是一个字典的形式{name:[pwd,tel]},为啥会报错 ?请指点

def register(name, pwd, tel):
    with open(‘userdate.txt‘, ‘a‘, encoding=‘utf-8‘) as f:
        new = {}
        new[name] = [pwd,tel]
        f.write(‘\n‘ + str(new))
        return True
def same(name):
    with open(‘userdate.txt‘, ‘r‘, encoding=‘utf-8‘) as f:
        for i in f:
            for k in eval(i): # 为什么eval(i)没有字典的方法keys()
                if name == k:
                    return False
    return Truedef main():
    print(‘1:注册)
    choice = input(‘请选择‘).strip()
    if choice == ‘1‘:
        name = input(‘输入用户名‘).strip()
        if same(name):
            pwd = input(‘输入密码‘).strip()
            tel = input(‘输入电话‘).strip()
            if register(name, pwd, tel):
                print(‘注册成功‘)
        else:
            print(‘用户名已被占用,重新输入‘)
            main()
‘’‘
————————————————————
报错的信息
Traceback (most recent call last):
  File "E:/py/666.py", line 54, in <module>
    main()
  File "E:/py/666.py", line 35, in main
    if same(name):
  File "E:/py/666.py", line 12, in same
    for k in eval(i):
  File "<string>", line 1

    ^
SyntaxError: unexpected EOF while parsing

Process finished with exit code 1
’‘’

原文地址:https://www.cnblogs.com/xusuns/p/8412625.html

时间: 2024-08-26 13:12:15

做一个登陆的文件操作,存到文件中是一个字典的形式{name:[pwd,tel]},为啥会报错 ?请指点的相关文章

009实现一个算法来删除单链表中的一个结点,只给出指向那个结点的指针(keep it up)

呵呵,这个题不能直接删除已知的结点,因为是单链表,不知道前驱,只知道 后继结点,直接删除会使链表断开.不过我们可以删除已知结点的后继结点, 把后继结点的值赋值给已知结点. #include <iostream> struct Node { int data; Node* next; }; bool removeNode(Node* vNode) { if (vNode == NULL || vNode->next == NULL) return false; Node* pNext =

声明一个MyClass类,在类中声明一个常量,和一个成员方法

<?php class MyClass { //声明一个MyClass类,在类中声明一个常量,和一个成员方法 const CONSTANT = 'CONSTANT value'; //使用const声明一个常量,并直接赋上初使值 private $foo; private $sss; function __construct($foo,$sss){ $this->foo = $foo; $this->sss = $sss; } function showConstant() { //声明

[ jquery 过滤器 prev([expr]) ] 此方法用于在选择器的基础之上搜索查找取得一个包含匹配的元素集合中每一个元素紧邻的前一个同辈元素的元素集合

取得一个包含匹配的元素集合中每一个元素紧邻的前一个同辈元素的元素集合,可以用一个可选的表达式进行筛选.只有紧邻的同辈元素会被匹配到,而不是前面所有的同辈元素 expr 用于筛选前一个同辈元素的表达式 实例: <html lang='zh-cn'> <head> <title>Insert you title</title> <meta http-equiv='description' content='this is my page'> <

[ jquery 过滤器 siblings(expr) ] 此方法用于在选择器的基础之上搜索取得一个包含匹配的元素集合中每一个元素的所有唯一同辈元素的元素集合,可以用可选的表达式进行筛选

此方法用于在选择器的基础之上搜索取得一个包含匹配的元素集合中每一个元素的所有唯一同辈元素的元素集合,可以用可选的表达式进行筛选 实例: <html lang='zh-cn'> <head> <title>Insert you title</title> <meta http-equiv='description' content='this is my page'> <meta http-equiv='keywords' content='

编写一个程序,统计输入字符串中每一个小写英文字母出现的次数

import java.util.Scanner; /** * @author:(LiberHome) * @date:Created in 2019/3/1 22:18 * @description: * @version:$ */ /*编写一个程序,统计输入字符串中每一个小写英文字母出现的次数*/ public class page0901 { public static void main(String[] args) { /*首先,输入一段字符串作为字符数组*/ System.out.p

children([expr]) 取得一个包含匹配的元素集合中每一个元素的所有子元素的元素集合。

children([expr]) 概述 取得一个包含匹配的元素集合中每一个元素的所有子元素的元素集合. 可以通过可选的表达式来过滤所匹配的子元素.注意:parents()将查找所有祖辈元素,而children()只考虑子元素而不考虑所有后代元素.大理石量具哪家好 参数 exprStringV1.0 用以过滤子元素的表达式 示例 描述: 查找DIV中的每个子元素. HTML 代码: <p>Hello</p><div><span>Hello Again</

next([expr])取得一个包含匹配的元素集合中每一个元素紧邻的后面同辈元素的元素集合。

next([expr]) 概述 取得一个包含匹配的元素集合中每一个元素紧邻的后面同辈元素的元素集合. 这个函数只返回后面那个紧邻的同辈元素,而不是后面所有的同辈元素(可以使用nextAll).可以用一个可选的表达式进行筛选.直线电机选型 参数 exprStringV1.0 用于筛选的表达式 示例 描述: 找到每个段落的后面紧邻的同辈元素. HTML 代码: <p>Hello</p><p>Hello Again</p><div><span&g

在按照ROS官方步骤操作,同时用Git管理整个过程,git clone的新catkin_ws报错: catkin_package() include dir &#39;include&#39; does not exist relative to

在按照ROS官方步骤操作,同时用Git管理整个过程,git clone的新catkin_ws报错如下: CMake Error at /opt/ros/kinetic/share/catkin/cmake/catkin_package.cmake:302 (message): catkin_package() include dir 'include' does not exist relative to '/home/username/catkin_ws/src/beginner_tutori

WebStorm 项目中修改了文件名,提交到SVN 的两个报错。

今天在 WebStorm 项目中, 修改了两个文件夹的名称,点击更新提交后,分别出现了两个报错: 报错1:references in generated code to directory .....(Not Found)4 usages 报错2:occurrences found in comments, ....... 修改mp4 为  a_mp4 的 报错:(不知道是我看不懂报错提示,还是报错提示就是无意义.报JS 问题,我保证肯定不是我的JS 的问题.于是我就查阅了其他资料.) 解决办法