Python基础总结(三)(选择、循环)

To the world you may be one person, but to one person you may be the world.

可以使用int将布尔值转换为整数

int(true) = 1

int(false) = 0

可以使用bool函数将数字值转换成布尔值

bool(0) = false

bool(4) = true

随机数

函数randint(a, b) 可以用来产生一个a和b之间且包含a和b的随机整数,此函数在random模块中。最后,如果你的时间不是很紧张,并且又想快速的提高,最重要的是不怕吃苦,建议你可以联系维:762459510 ,那个真的很不错,很多人进步都很快,需要你不怕吃苦哦!大家可以去添加上看一下~

函数randrange(a, b)产生一个在a、b-1之间的随机数,等同于randint(a, b - 1)

函数random()  产生一个0<=r<=1.0的随机浮点数r(不包括1.0)

给出一个好玩的例子;计算生日日期(数学原理这里就不讲了,想知道的给我留言:))

#计算生日日期

day =0

question1 ="你的生日日期在这里面么?\n"+ \

"1 3 5 7\n"+ \

"9 11 13 15\n"+ \

"17 19 21 23\n"+ \

"25 27 29 31\n"+ \

"请输入0代表没有,输入1代表有"

answer =eval(input(question1))

ifanswer ==1:

day +=1

question2 ="你的生日日期在这里面么?\n"+ \

"2 3 6 7\n"+ \

"10 11 14 15\n"+ \

"18 19 22 23\n"+ \

"26 27 30 31\n"+ \

"请输入0代表没有,输入1代表有"

answer =eval(input(question2))

ifanswer ==1:

day +=2

question3 ="你的生日日期在这里面么?\n"+ \

"4 5 6 7\n"+ \

"12 13 14 15\n"+ \

"20 21 22 23\n"+ \

"28 29 30 31\n"+ \

"请输入0代表没有,输入1代表有"

answer =eval(input(question3))

ifanswer ==1:

day +=4

question4 ="你的生日日期在这里面么?\n"+ \

"8 9 10 11\n"+ \

"12 13 14 15\n"+ \

"24 25 26 27\n"+ \

"28 29 30 31\n"+ \

"请输入0代表没有,输入1代表有"

answer =eval(input(question4))

ifanswer ==1:

day +=8

question5 ="你的生日日期在这里面么?\n"+ \

"16 17 18 19\n"+ \

"20 21 22 23\n"+ \

"24 25 26 27\n"+ \

"28 29 30 31\n"+ \

"请输入0代表没有,输入1代表有"

answer =eval(input(question5))

ifanswer ==1:

day +=16

print("\n你的生日日期是:"+str(day) +"!")

运算符的优先级(从高到低)

+,- (一元加减运算符)

** (指数运算符)

not

*、/、 //、% (乘、除、整除、余数)

+、- (二元加减)

<、<= 、>、>= (比较)

==、!=(相等运算符)

and

or

=、+=、-=、*=、/=、//=、%=(赋值运算符)

⚠️注意在循环中不要使用浮点数值来比较相等作为控制条件,因为浮点数运算是近似的。如下例子:

#这个程序看着挺正常的,但是其实会一直运行在循环中,因为while item !=0这个判断条件是不成立的

item=1

sum =0

while item !=0:

        item -=0.1

        sum+= item

print(sum)

那么遇到这种情况的话,可以考虑是用for循环或者使用一个整数计数来充当哨兵值解决这个问题。

输入输出重定向

推荐学习博客:

http://www.cnblogs.com/turtle-fly/p/3280519.html

将输出重定向到out.log文件,同时也在控制台(屏幕)打印

import sys

class__redirection__:

def__init__(self):

self.buff =''

self.__console__ = sys.stdout

defwrite(self, output_stream):

self.buff += output_stream

defto_console(self):

sys.stdout =self.__console__

print(self.buff)

defto_file(self, file_path):

f =open(file_path,'w')

sys.stdout = f

print(self.buff)

f.close()

defflush(self):

self.buff =''

defreset(self):

sys.stdout =self.__console__

if__name__ =="__main__":

# redirection

r_obj = __redirection__()

sys.stdout = r_obj

# get output stream

print('hello')

print('there')

# redirect to console

r_obj.to_console()

# redirect to file

r_obj.to_file('out.log')

# flush buffer

r_obj.flush()

# reset

r_obj.reset()

for循环

for v in range(4,8):

print(v)

结果是:4,5,6,7

其中,range函数有多种形式,如:range(a) 与range(0, a)功能一样,range(a, b, k)中k代表步长,k也可以是负数。但是range中的数必须为整数。最后,如果你的时间不是很紧张,并且又想快速的提高,最重要的是不怕吃苦,建议你可以联系维:762459510 ,那个真的很不错,很多人进步都很快,需要你不怕吃苦哦!大家可以去添加上看一下~

求最大公约数

#欧几里得算法求最大公约数

#递归

def Gcd(a, b):

if b ==0:

returna

return Gcd(b, a % b)

print(Gcd(2,4))
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值