Python新建文件,从键盘输入一个正整数并将其赋值给a,然后输入将a分别转换为二?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python新建文件,从键盘输入一个正整数并将其赋值给a,然后输入将a分别转换为二?相关的知识,希望对你有一定的参考价值。

为二进制、八进制、十六进制的结果

参考技术A

def d2n(a,n):

    if(a>=n):

        d2n(a//n,n)

    print('0123456798ABCDEF'[a%n],end='')

    

a=int(input())

d2n(a,2)

print('')

d2n(a,8)

print('')

d2n(a,16)

print('')

参考技术B a = int(input())
print(bin(a),oct(a),hex(a))

python:从键盘输入列表

【中文标题】python:从键盘输入列表【英文标题】:python: in put lists from keyboard 【发布时间】:2017-06-11 03:24:44 【问题描述】:

编写python程序合并两个排序列表,尝试从键盘输入这两个列表的值,但是在开始运行时尝试输入第一个值,它会出错:

输入list1:1的整数

回溯(最近一次通话最后一次): 文件“C:/Python/PythonProject/mergeTwoLists_leetcode.py”,第 20 行,<module>

list1[i] = input("请输入list1的整数:")

IndexError:列表分配索引超出范围

程序是:

class ListNode(object):
    def __init__(self,x):
        self.val = x
        elf.next = None

class MergeTwoLists(object):
    def mergeTwoLists(self,l1,l2):
        if not li or not l2:
            return l1 or l2
        if l1.val < l2.val:
            l1.next = mergeTwoLists(l1.next,l2)
            return l1
        else:
            l2.next = mergeTwoLists(l1,l2.next)
            return l2

#input the two integer lists
list1 = []
for i in range(0,6):
    list1[i] = input("enter a integer of list1:")
head = ListNode(list1[0])
p = head
for j in list1[1:]:
    node = ListNode(j)
    p.next = node
    p = p.next
l1 = head

list2 = []
for i in range(0,6):
    list2[i] = input("enter an integer of list2:")
head = ListNode(list2[0])
p = head
for j in list2[1:]:
    node = ListNode(j)
    p.next = node
    p = p.next
l2 = head

list_result = MergeTwoLists().mergeTwoLists(l1,l2)
print("the list result:")
print(list_result)

你能帮我吗

【问题讨论】:

FWIW,除非你有一些复杂的合并逻辑,否则合并列表就像:[1, 2, 3] + [4, 5, 6],这将产生[1, 2, 3, 4, 5, 6] 【参考方案1】:

您将 list1 初始化为一个空列表

list1 = []

为了在列表末尾添加一个新项目,请使用 append()

for i in range(0,6):
   list1.append(input("enter a integer of list1:"))

在你的例子中

for i in range(0,6):
   list1[i] = input("enter a integer of list1:")

您收到 IndexError 是因为您试图访问 list1 中不存在的索引,因为空列表的长度为零。

(仅供参考,此答案特定于您的错误,而不是您的代码的其余部分)

文档:https://docs.python.org/3/tutorial/datastructures.html

【讨论】:

【参考方案2】:
list1 = []
list2 = []
for i in range(0,6):
    list1.append(input("enter a integer of list1:"))
for i in range(0,6):
    list2.append(input("enter an integer of list2:"))

total_list = list1 + list2
total_list.sort()

这是错误的,因为 list1 是一个空列表,所以您的位置不存在

【讨论】:

【参考方案3】:

使用eval函数将帮助您输入一个列表

listos = eval(input('enter a comma seperated list))
listos.split()

split()用于sep列表用逗号括起来。

【讨论】:

以上是关于Python新建文件,从键盘输入一个正整数并将其赋值给a,然后输入将a分别转换为二?的主要内容,如果未能解决你的问题,请参考以下文章

编写一个Java应用程序,从键盘输入若干个正整数,如果输入为负数,抛掷自定义的异常

从键盘输入一个正整数,判断其是不是既为3又是5的整倍数。若满足条件,输出“满足条件!”,

c++编程)键盘输入一个高精度的正整数M,去掉其中任意S个数字后使剩下的数最小

写一个程序,从键盘输入一个任意的正整数n,能找到并输出n以内的所有完数及其因子。

c语言 .从键盘输入10个整数,存到一维数组中,并求这10个整数的和?

for循环:从键盘输入一个正整数n,