小编011*_*100的帖子

如何根据数据类型在python中设置条件?

这个问题似乎令人难以置信,但我无法弄清楚.我知道你可以检查python中的数据类型,但是如何根据数据类型设置条件?例如,如果我必须编写一个通过字典/列表排序并将所有整数相加的代码,那么如何隔离搜索以仅查找整数?

我想一个简单的例子看起来像这样:

y = []
for x in somelist:
    if type(x) == <type 'int'>:  ### <--- psuedo-code line
    y.append(x)
print sum(int(z) for z in y)
Run Code Online (Sandbox Code Playgroud)

那么对于第3行,我将如何设置这样的条件?

python conditional types

19
推荐指数
2
解决办法
4万
查看次数

Python中的分数

无论如何在Python中计算一个分数,例如2/3或1/2,而不导入math模块?

代码片段很简单:

# What is the cube root of your number
n = float(raw_input('Enter a number: '))
print(n**(1/3))
Run Code Online (Sandbox Code Playgroud)

非常简单的代码,但我看到它告诉我导入math模块.我只是想将该片段添加到我正在处理的更大的代码中.我一直得到1作为我的答案,因为Python感觉像1/3是0而不是.333333333.我可以把.33333,但这只是一个临时修复,我想知道如何为未来的项目执行这个非常基本的计算.

python fractions

8
推荐指数
2
解决办法
2万
查看次数

否则,elif,如果Python出现问题

instrument=(raw_input("Which kind of tab would you like to view? Enter 'Guitar' or 'Bass' for a random tab " ))
print
if instrument=='guitar' or 'Guitar':
    print ("0-3-5---0-3-6-5---0-3-5-3-0")
elif instrument=='bass' or 'Bass':
    print ("3-5-12--12-0-5-6-0-0-0-3")
else:
    print 'Sorry, please re-enter a proper answer'
Run Code Online (Sandbox Code Playgroud)

无论您为变量"乐器"输入什么内容,此代码每次都打印出"吉他"选项卡(第一个if语句).

我正在尝试自学python,我只是跳进去学习,这是我正在研究的基本程序,并希望扩展.

我看过网上但是从我读过的关于if else语句的内容来看,我的新手眼睛看起来这段代码应该有效.我错过了一些我无法弄清楚的东西

python if-statement

1
推荐指数
2
解决办法
1626
查看次数

如何使'while'循环将循环的条件结果打印成一行(连接)?

所以这是我的代码:

test = {
    'a':1, 'b':2 , 'c':3 , 'd':4
}

x = raw_input("Type 'abcd' ")
y = len(x)
z = 1
while z < y+1:
    a = x[z-1]
    print test[a]
    z = z + 1
Run Code Online (Sandbox Code Playgroud)

关键是要制作一个基本的编码器,显然这段代码只是建立一个我可以构建的准代码.我的问题是:

我无法将'while'循环打印的结果打印成一行,并且不仅可以打印成一行,而且可以连接成一个更大的整数(或者就此而言的字符串,比如说代码显示字母而不是整数,从这些字母创建一个字符串).虽然,在这段代码中,我希望代码的结果是整数' 1234 '.不:

1
2
3
4
Run Code Online (Sandbox Code Playgroud)

基本上,我的问题是:如何以这样的方式使while循环打印的结果,它们连接整数(或字母)以创建更大的数字(或字符串)?我不想要结果1 2 3 4

成为10,但我希望它成为整数1234.我在网上看过,但找不到对我有用的东西.事实上我根本没找到任何东西.

python while-loop

1
推荐指数
1
解决办法
4748
查看次数

我的无限循环有什么不对?

这是我的代码:

#!/usr/bin/env python

encodec = {
    'a':22 , 'b':24 , 'c':26 , 'd':28 , 'e':12 , 'f':14 , 'g': 16 , 'h':18 , 'i':32 , 'j':34 , 'k':36 , 'l':38 , 'm':42 , 'n':44 , 'o':46 , 'p':48 , 'q':50 , 'r':52 , 's':54 , 't':56 , 'u':58 , 'v': 62 , 'w':64 , 'x':66, 'y': 68 , 'z':72 , ' ':74 , '.':76 , ',':78 , "'":82 , '?':84 , '"':86
}
decodec = {
    22:'a' , 24:'b' , …
Run Code Online (Sandbox Code Playgroud)

python while-loop

0
推荐指数
1
解决办法
141
查看次数

为什么这个代码仅在我使用'x,y = y,x + y格式而不是'x = y时才有用; y = x + y'?

我正在研究Project euler,尽管如此.我正在编写一个快速代码来打印出Fibonacci序列.我实际上有一个不同的项目eueler方程的代码,但这实际上是我使用的算法:

x = 1
y = 0
while x < 4000000:
    print x
    x = y
    y = x + y
Run Code Online (Sandbox Code Playgroud)

这让我有一段时间了,这本来应该有效.然后我研究了一下,发现几乎相同的代码,但有点不同的格式.它奏效了!唯一的区别是它将x和y赋值放在一行中,用逗号分隔.所以我试了一下:

x , y = 1 , 0
while x < 4000000:
    print x
    x,y = y, x + y
Run Code Online (Sandbox Code Playgroud)

显然,正如我所说,它有效.这真的让我很烦,因为我无法弄清楚除了聪明并且在第二个中使用更少的线之外,两者之间的区别.我不明白为什么输出不同.为什么输出不同?

python variables

0
推荐指数
1
解决办法
86
查看次数

为什么我的%s格式说明符没有在此代码段中捕获?

mconfigQuantity = int(raw_input('Enter the number of (m)achine-configurations that you will need: '))
numberOfmconfig = 1


for mconfigs in range(1,mconfigQuantity+1):
    # %s conditional for mcidentifier
    STRINGnumberOfmconfig = str(numberOfmconfig)
    if STRINGnumberOfmconfig[-1] == '1':
        suffix = 'st'
    elif STRINGnumberOfmconfig[-1] == '2':
        suffix = 'nd'
    elif STRINGnumberOfmconfig[-1] == '3':
        suffix = 'rd'
    else: suffix = 'th'
    finalConfigName = STRINGnumberOfmconfig + suffix
    mcidentifier = raw_input('Enter the letter of your %s (m)achine-configuration: ') % (finalConfigName)
    numberOfmconfig = numberOfmconfig + 1






print mconfig()
Run Code Online (Sandbox Code Playgroud)

我现在已经编写并重写了几次这个片段,对于我为什么打印'%s'而不是用我为它指定的数据替换它是没有意义的.我找不到任何表明它无法正常工作的东西.

python format-specifiers

0
推荐指数
1
解决办法
66
查看次数