python循环计算函数_Python位操作、判断、循环,运算

位运算

1、原码、反码和补码

计算机内部使用补码来表示

2、按位运算实现快速计算

(1) 通过^(异或)快速交换两个整数。

a^=b

b^=a

a^=b

(2) 通过a&(-a)快速获取a的最后为1 位置的整数。

00 00 01 01 -> 5

&

11 11 10 11 -> -5

- - -

00 00 00 01-> 1

4、利用位运算实现整数集合

一个数的二进制表示可以看作是一个集合(0表示不在集合中,1表示在集合中)。

例如:

集合{1,3,4,8},可以表示成01 00 01 10 10 二对应的位运算也就可以看作是对集合进行的操作。

例:

a=[01101001],从右边数起,第0、3、5、6位是1,所以就表示了0、3、5、6这4个数

元素与集合的操作:

a|(1<把i插入到集合中

a&~(1<把i从集合中删除

a&(1<判断i是否属于该集合(零不属于,非零属于)

集合之间的操作:

a 补 ->~a

a 交 b->a&b

a 并 b->a|b

a 差 b->a&(~b)

注意:

整数在内存中是以补码的形式存在的,输出也是按照补码输出的。

Python中整型是不限制长度的不会超范围溢出。

得到负数(十进制数)的补码的方式:将其与十六进制数0xffffffff进行按位与操作,再用bin()进行输出。

条件语句

1、if语句

if expression:

expr_true_suite

expression条件表达式可以通过布尔操作符and,or和not实现多重条件判断

if 2 > 1 and not 2 > 3:

print('Correct Judgement!')

# Correct Judgement!

2、if-else语句

if expression:

expr_true_suite

else:

expr_false_suite

3、if-elif-else语句

if expression1:

expr1_true_suite

elif expression2:

expr2_true_suite

.

.

elif expressionN:

exprN_true_suite

else:

expr_false_suite

elif即为else if,用来检查多个表达式是否为真,并在为真时执行特定代码块中的代码。

temp = input('请输入成绩:')

source = int(temp)

if 100 >= source >= 90:

print('A')

elif 90 > source >= 80:

print('B')

elif 80 > source >= 60:

print('C')

elif 60 > source >= 0:

print('D')

else:

print('输入错误!')

#请输入成绩:99

#A

4、assert关键词

asssert关键词又称为"断言",该关键词后边的条件为False时,程序自动崩溃并抛出AssertionError的异常。

例子:

my_list = ['lsgogroup']

my_list.pop(0)

assert len(my_list) > 0

# AssertionError

循环语句

1、while循环

while 布尔表达式:

代码块

while后的布尔表达式写入一个非零整数时,视为真值,执行循环体。写入0时视为假值,不执行循环体。

也可换做str、list或其他序列。长度非零则为真,否则为假。

string = 'abcd'

while string:

print(string)

string = string[1:]

# abcd

# bcd

# cd

# d

字符串中的切割函数(slice(start,stop[,step]))

str[起始地址:结束位置:间距]

2、while-else循环

while 布尔表达式:

代码块

else:

代码块

如果在while的代码块中有break语句,则不执行else中的内容。

3、for循环

for 迭代变量 in 可迭代对象:

代码块

例子:

for i in 'ILoveLSGO':

print(i, end=' ') # 不换行输出

# I L o v e L S G O

4、for-else循环

for 迭代变量 in 可迭代对象:

代码块

else:

代码块

5、range()函数

range([start,] stop[, step=1])

start :起始地点,默认从0开始

stop :结束位置,不包含stop

step :步长,默认为1

for i in range(1, 10, 2):

print(i)

# 1

# 3

# 5

# 7

# 9

6、enumerate()函数

将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在 for 循环当中。

enumerate(sequence, [start=0])

sequence :一个序列、迭代器或者其他支持迭代对像。

start :下标起始位置。

返回enumerate(枚举)对象

例子:

seasons = ['Spring', 'Summer', 'Fall', 'Winter']

lst = list(enumerate(seasons))

print(lst)

# [(0, 'Spring'), (1, 'Summer'), (2, 'Fall'), (3, 'Winter')]

lst = list(enumerate(seasons, start=1)) # 下标从 1 开始

print(lst)

# [(1, 'Spring'), (2, 'Summer'), (3, 'Fall'), (4, 'Winter')]

与for循环结合使用

for i, a in enumerate(A)

do something with a

例子:

languages = ['Python', 'R', 'Matlab', 'C++']

for language in languages:

print('I love', language)

print('Done!')

# I love Python

# I love R

# I love Matlab

# I love C++

# Done!

7、break语句

break语句可以跳出当前所在层的循环。

8、continue 语句

continue终止本轮循环并开始下一轮循环。

9、 pass 语句

pass 语句的意思是“不做任何事”,如果你在需要有语句的地方不写任何语句,那么解释器会提示出错,而 pass 语句就是用来解决这些问题的。

def a_func():

pass

def 用于函数定义

pass是空语句,不做任何操作,只起到占位的作用,其作用是为了保持程序结构的完整性。

10、推导式

列表推导式

[ expr for value in collection [if condition] ]

例子:

x = [-4, -2, 0, 2, 4]

y = [a * 2 for a in x]

print(y)

# [-8, -4, 0, 4, 8]

x = [i for i in range(100) if (i % 2) != 0 and (i % 3) == 0]

print(x)

# [3, 9, 15, 21, 27, 33, 39, 45, 51, 57, 63, 69, 75, 81, 87, 93, 99]

a = [(i, j) for i in range(0, 3) for j in range(0, 3)]

print(a)

# [(0, 0), (0, 1), (0, 2), (1, 0), (1, 1), (1, 2), (2, 0), (2, 1), (2, 2)]

元组推导式

( expr for value in collection [if condition] )

例子:

a = (x for x in range(10))

print(a)

# at 0x0000025BE511CC48>

print(tuple(a))

# (0, 1, 2, 3, 4, 5, 6, 7, 8, 9)

字典推导式

{ key_expr: value_expr for value in collection [if condition] }

例子:

b = {i: i % 2 == 0 for i in range(10) if i % 3 == 0}

print(b)

# {0: True, 3: False, 6: True, 9: False}

集合推导式

{ expr for value in collection [if condition] }

例子:

c = {i for i in [1, 2, 3, 4, 5, 5, 6, 4, 3, 2, 1]}

print(c)

# {1, 2, 3, 4, 5, 6}

其它

next(iterator[, default]) Return the next item from the iterator. If default is given and the iterator is exhausted, it is returned instead of raising StopIteration.

例子:

e = (i for i in range(10))

print(e)

# at 0x0000007A0B8D01B0>

print(next(e)) # 0

print(next(e)) # 1

for each in e:

print(each, end=' ')

# 2 3 4 5 6 7 8 9

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/543551.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【three.js】库

2019独角兽企业重金招聘Python工程师标准>>> three.js 一个轻量级的webgl库&#xff0c;但是十分强大。 下载地址https://github.com/mrdoob/three.js OrbitControls.js 控制视口的平移、缩放、旋转。 GridHelper.js 生成视口的网格。 转载于:https://my.oschina.…

java split空字符_java split函数结尾空字符串被丢弃的问题

java中的split函数用于将字符串分割为字符数组是很方便的&#xff0c;但由于不是很熟悉&#xff0c;犯了错误如下&#xff1a;String strtest “1,2,”;String arry[] strtest.split(“,”);这样得到的数组元素个数只是2两个&#xff0c;为什么呢&#xff0c;最后一个”,”后…

域名发散--前端优化(三)

话说天下大势&#xff0c;分久必合&#xff0c;合久必分其实域名也是一样&#xff0c;分分合合&#xff0c; 不管是域名收敛还是域名发散&#xff0c;都有着自己独特的应用场景。目前, 在webs top 30,000 URLS 里面&#xff0c; 平均每个域名承担了50个资源的请求&#xff0c;所…

java就_GitHub - IammyselfYBX/This_is_how_Java_should_be_learned: 《Java就应该这样学》

Java就该这么学说明这里使用 centos7 的openjdk&#xff0c;不是Oracle的JDKyum search java|grep jdkyum install java-1.8.0-openjdk#set Java environmentexport JAVA_HOME/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.222.b10-1.el7_7.x86_64export CALSSPATH.:$JAVA_HOME/jre/l…

HttpHandler与HttpModule的用处与区别

HttpHandler与HttpModule的用处与区别   问题1&#xff1a;什么是HttpHandler&#xff1f; 问题2&#xff1a;什么是HttpModule&#xff1f; 问题3&#xff1a;什么时候应该使用HttpHandler什么时候使用HttpModule&#xff1f; 答案1&#xff1a;HttpHandler&#xff0c;Htt…

win7变成xp风格了怎么改回_XP退役了,如何把Win7变成XP风格

展开全部方法如下&#xff1a;【步骤62616964757a686964616fe78988e69d8331333365653265①】&#xff1a;在电脑桌面空白处&#xff0c;点击鼠标右键&#xff0c;子菜单选择点击“个性化”【步骤②】&#xff1a;直接选择“基本和高对比主题”里的“Windows经典”模式整理风格发…

org.apache.catalina.LifecycleException: Failed to

2019独角兽企业重金招聘Python工程师标准>>> 文章原创地址&#xff1a;org.apache.catalina.LifecycleException: Failed to start component今天来了个新同事&#xff0c;让他先熟悉一下我们的工程项目&#xff0c;从svn下载下来以后&#xff0c;配置完成却怎么都无…

ef mysql 读写分离_EF架构~通过EF6的DbCommand拦截器来实现数据库读写分离~终结~配置的优化和事务里读写的统一...

/// ///SQL命令拦截器///主要实现EF的读写分离/// public classCommandInterceptor : DbCommandInterceptor{staticCommandInterceptor(){readConnListDistributedReadWriteManager.Instance;sysTimer.Enabled true;sysTimer.ElapsedsysTimer_Elapsed;sysTimer.Start();}/// //…

最近的日子,很惬意!

最近的日子&#xff0c;很惬意&#xff1b;没事就去实验室看看编程&#xff0c;最近开始学习JAVA了&#xff0c;上手很快&#xff0c;有了之前面对对象C的基础&#xff0c;java也觉得不是很难&#xff0c;嗯&#xff0c;加油&#xff0c;有实验室一群优秀的人在我身边&#xff…

fastdfs java token_fastdfs 开启 token 防盗链

环境&#xff1a;fastdfsnginx ngx_fastdfs_modulephpfastdfs_php扩展开启token令牌&#xff1a;vi /etc/fdfs/http.conf#开启http.anti_steal.check_tokentrue#密钥http.anti_steal.secret_key123456重启nginxphp中&#xff0c;通过fastdfs_http_gen_token()函数生成$token,例…

objective-C CollectionView 加深(添加注册头部View)

2019独角兽企业重金招聘Python工程师标准>>> #pragma marc 添加Collection -(void)addConllectionView{//collection的布局方案UICollectionViewFlowLayout *collectionViewLayout[[UICollectionViewFlowLayout alloc]init];//设置位置大小以及布局方案_myCollectio…

java如何实现乌龟爬行_请教:一只乌龟的运动

import java.awt.*;import java.awt.event.*;import java.util.EventListener;/*打算你按上&#xff0c;乌龟上爬&#xff0c;按下&#xff0c;乌龟下爬。但是一直没有repaint&#xff0c;怎么回事呀&#xff0c;请教下什么地方错了&#xff0c;怎么才能动。*/public class WuG…

Javascript中Base64编码解码的使用实例

Javascript为我们提供了一个简单的方法来实现字符串的Base64编码和解码&#xff0c;分别是window.btoa()函数和window.atob()函数。 1 var encodedStr window.btoa(“Hello world”); //字符串编码 2 var decodedStr window.atob(encodedStr); //字符串解码看下面的实例代…

java中创建窗口用的什么_JAVA 窗口的创建

奇了个怪了&#xff0c;没什么大问题。你在cmd里编译试试实在不行&#xff0c;加我QQ:656098987&#xff0c;帮你远程看看代码可以试试这么写import java.awt.Color;import java.awt.Image;import java.awt.Toolkit;import javax.swing.ImageIcon;import javax.swing.JFrame;im…

mysql安装前的系统准备工作(转)

一、系统环境总结&#xff1a; 二、安装yum源&#xff1a; 1、安装磁盘yum源&#xff1a; 一、安装xfs文件系统&#xff1a;1、配置yum源&#xff1a;&#xff08;光盘&#xff09;vi /etc/yum.repos.d/yum.repo[Server]nameserverbaseurlfile:///tmp/cddir/Server/enabled1gpg…

怎样与用户有效的沟通以获取用户的真实需求

访谈人员必须要站在用户的角度去与用户进行交谈&#xff0c;同时&#xff0c;在与用户交谈前&#xff0c;先要了解用户可能使用到的专业领域的专有名词&#xff0c;防止在交谈过程中用户的意思&#xff0c;导致双方所交谈的内容词不达意。在与用户的沟通中&#xff0c;软件开发…

layui常用的表单标签_Layui常用组件:表格(table)

快速使用添加删除编辑查看编辑删除layui.use([table], function () {table.render({elem: #demo,url: url//表格数据接口,toolbar: #toolbarDemo //开启头部工具栏&#xff0c;并为其绑定左侧模板,page:true//开启分页,loading:true//显示加载条,cols: [[{type: checkbox, fixe…

快递100推送服务

快递查询服务能做到这个程度&#xff0c;真是牛掰到极点了。 尊敬的快递100客户&#xff1a; 快递100推送服务已增加QQ推送功能&#xff0c;请尽快让贵司的技术人员升级您的程序&#xff1a; 请在订阅报文中增加以下字段和值&#xff0c;我们会免费会向贵司的买家的QQ号推送物流…

java代码中何处以main开始_自测题: Java 基础

1.19 自测题&#xff1a;什么是字节码&#xff1f;它对Java的Internet程序设计为何十分重要?字节码是一种高度优化的指令集&#xff0c;由Java虚拟机执行&#xff0c;可帮助Java获得可移植性和安全性面向对象程序设计的三个主要原则是什么&#xff1f;封装、多态性和继承Java程…

理解HTTP幂等性

2019独角兽企业重金招聘Python工程师标准>>> 理解HTTP幂等性 基于HTTP协议的Web API是时下最为流行的一种分布式服务提供方式。无论是在大型互联网应用还是企业级架构中&#xff0c;我们都见到了越来越多的SOA或RESTful的Web API。为什么Web API如此流行呢&#xff…