C未解决的问题
1、定义一个数组,编程打印它的全排列。比如定义:
初学C编程(1)
a+++++b这个表达式如何理解?应该理解成a++ ++ +b
还是a++ + ++b
,还是a + ++ ++b
呢?应该按第一种方式理解。编译的过程分为词法解析和语法解析两个阶段,在词法解析阶段,编译器总是从前到后找最长的合法Token。把这个表达式从前到后解析,变量名a
是一个Token,a
后面有两个以上的+号,在C语言中一个+号是合法的Token(可以是加法运算符或正号),两个+号也是合法的Token(可以是自增运算符),根据最长匹配原则,编译器绝不会止步于一个+号,而一定会把两个+号当作一个Token。再往后解析仍然有两个以上的+号,所以又是一个++运算符。再往后解析只剩一个+号了,是加法运算符。再往后解析是变量名b
。词法解析之后进入下一阶段语法解析,a
是一个表达式,表达式++还是表达式,表达式再++还是表达式,表达式再+b还是表达式,语法上没有问题。最后编译器会做一些基本的语义分析,这时就有问题了,++运算符要求操作数能做左值,a
能做左值所以a++
没问题,但表达式a++
的值只能做右值,不能再++了,所以最终编译器会报错。
最大公约数与Fibnacci的递归和循环实现
最大公约数与Fibnacci数列的解答。(递归法和循环法)
Python学习笔记(三)
有三种方法可以用来从集合中删除某个值。前两种,discard() 和 remove() 有细微的差异。 如果针对一个集合中不存在的值调用 discard() 方法,它不进行任何操作。不产生错误;只是一条空指令。 区别在这里:如果该值不在集合中,remove() 方法引发一个 KeyError 例外。
关于L[3:1]=['x']=L.insert(3,'x')的解答
Python scales the slice limits to make sure that the lower bound is always less than
or equal to the upper bound (e.g., L[3:1] is scaled to L[3:3], the empty insertion
point at offset 3). Python slices are always extracted from left to right, even if you
use negative indexes (they are first converted to positive indexes by adding the
sequence length)
Python学习笔记(2)
学习笔记2
Python相关的网站
Python编程想要解决的问题
掷硬币概率问题,如100次里6次都是正面的概率,为什么用random()随机数不好
股票取值,计算收益
learning python 3rd中文版199页,转化与pickle用法意义不明
我的Python初学代码
# 依云(百合仙子)的解法,高低立下 - __ - import math r = [L[i:i+10] for i in range(math.ceil(len(L)/10))]
Python学习笔记(1)
转义符
假设你想要在一个字符串中包含一个单引号('),那么你该怎么指示这个字符串?例如,这个字符串是What's your name?
。你肯定不会用'What's your name?'
来指示它,因为Python会弄不明白这个字符串从何处开始,何处结束。所以,你需要指明单引号而不是字符串的结尾。可以通过 转义符 来完成这个任务。你用\'
来指示单引号——注意这个反斜杠。现在你可以把字符串表示为'What\'s your name?'
。