User:雾叶千奈/自学Python相关/为了实现想做的那个程序,在这里看看需要哪些代码呱
print("要让程序打印出来的文本")
file -> new file
新建一个文件来写程序
run -> run module
保存并运行写好的程序
input(就放在那等用户输入字符串的框儿)
a = 123
将变量「a」赋值为「123」
name = 'Crossin'
字符串 - 表示一串字符,需要用''或""引起来
myVar = 123
整数
price = 5.99
浮点数 - 就是小数
visible = True
bool(布尔) - 这个比较特殊,是用来表示逻辑“是”“非”的一种类型,它只有两个值,True和False。(注意这里没有引号,有了引号就变成字符串了)
>
大于
<
小于
>=
大于等于
<=
小于等于
==
等于。比较两个值是否相等。之所以用两个等号,是为了和变量赋值区分开来。
!=
不等与
not
逻辑“非”。如果x为True,则not x为False
and
逻辑“与”。如果x为True,且y为True,则x and y为True
or
逻辑“或”。如果x、y中至少有一个为True,则x or y为True
num = 10 print 'Guess what I think?' answer = int(input())
一个值为「int(input())」而名为「answer」的变量
result = answer<num print 'too small?' print result
计算answer<num的结果,记录在result里,输出提示,再输出结果。
result = answer>num print 'too big?' print result
result = answer==num print 'equal?' print result
if (tab或者四个空格,但是要统一)
工作方式
#这个井字括号之内的注释文字是会被系统跳过、不当成程序内容的#
while的逻辑:同if一样,while也是一种控制流语句,另外它也被称作循环语句。
程序执行到while处,“当”条件为True时,就去执行while内部的代码,“当”条件为False时,就跳过。
-> while -> ture -> 做点什么 -> 回到while -> while -> false -> 跳过,下一个!
while 条件: (tab)循环执行的语句
👇举个例子:
a = 1 #先a设为1# while a != 0: #a不等于0就一直做# (tab)print "please input" (tab)a = int(input()) print "over"
引入模块的方法:
from 模块名 import 方法名
看不懂没关系,这东西以后我们会反复用到。今天你只要记住,你想要产生一个随机的整数,就在程序的最开头写上:
from random import randint
之后你就可以用randint来产生随机数了。
randint的时候后面也要有()。而且,还要在括号中提供两个数字,先后分别是产生随机整数范围的下限和上限。例如:
randint(5, 10)
这样将会产生一个5到10之间(包括5和10)的随机整数。
变量命名规则:
第一个字符必须是字母或者下划线“_”
剩下的部分可以是字母、下划线“_”或数字(0-9)
变量名称是对大小写敏感的,myname和myName不是同一个变量。
几个有效的栗子:
i __my_name name_23 a1b2_c3
几个坏掉的栗子(想一下为什么不对):
2things this is spaced out my-name
我们前面有用到变量来存储数据:
num = 10 answer = input()
也有用到变量来比较大小:
answer < num
除此之外,变量还可以进行数学运算:
a = 5 b = a + 3 c = a + b
python中运算的顺序是,先把“=”右边的结果算出了,再赋值给左边的变量。
下面这个例子:
a = 5 a = a + 3 print a
你会看到,输出了8,因为先计算出了右边的值为8,再把8赋给左边的a。
通过这种方法,可以实现累加求和的效果。它还有个简化的写法:
a += 3
这个和a = a + 3是一样的。
于是,利用变量、循环、累加,可以写一个程序,来完成传说中高斯大牛在小时候做过的题:
1+2+3+...+100=?
从1加到100等于多少?
提示:你可以用一个变量记录现在加到几了,再用一个变量记录加出来的结果,通过while来判断是不是加到100了。
一个逻辑表达式 代表了一个bool类型的结果,比如:
1 < 3
这个就像当于是一个True的值
2 == 3
这个就是False
把它们作为判断条件放到if或者while的后面,就是根据他们的值来决定要不要执行。
同样的栗子再来几颗:
a = 1 print a>3 #False print a==2-1 #True b = 3 print a+b==2+2 #True
比较容易搞混的,是bool变量的值和一个逻辑表达式的值,比如:
a = False print a #False print a==False #True
虽然a本身的值是False,但是a==False这个表达式的值是True。(说人话!)“a”是错的,但“a是错的”这句话是对的。
回到上面那几个概念:
bingo=False
把bingo设为一个值为False的变量
bingo==False
判断bingo的值是不是False,如果是,那么这句话就是True
while在判断条件条件为True时执行循环,所以当bingo==False时,条件为True,循环是要执行的。
另一种循环语句:
for ... in ...
同while一样,for循环可以用来重复做一件事情。
比如之前的一道习题:输出1到100
如果用for循环,则可以这么写:
for i in range(1, 101): print i
解释一下
所以,当你需要一个循环10次的循环,你就只需要写:
for i in range(1, 11)
或者
for i in range(0, 10)
区别在于前者i是从1到10,后者i是从0到9。当然,你也可以不用i这个变量名。
比如一个循环n次的循环:
for count in range(0, n)
for循环的本质是对一个序列中的元素进行递归。什么是序列,以后再说。先记住这个最简单的形式:
for i in range(a, b)
现在,你可以用for循环来改写习题903,904,905,906了。
字符串就是一组字符的序列(序列!又见序列!还记得我说过,range就是产生一组整数序列。今天仍然不去细说它。),它一向是编程中的常见问题。
python中最常用的字符串表示方式是单引号('')和双引号("")。我还是要再说:一定得是英文字符!
'string'和"string"的效果是一样的。
可以直接输出一个字符串
print 'good'
也可以用一个变量来保存字符串,然后输出
str = 'bad' print str
如果你想表示一段带有英文单引号或者双引号的文字,那么表示这个字符串的引号就要与内容区别开。
内容带有单引号,就用双引号表示
"It's good"
反之亦然
‘You are a "BAD" man’
还有一种在字符串中表示引号的方法,就是用\,可以不受引号的限制
\'表示单引号,\"表示双引号
'I\'m a \"good\" teacher'
\被称作转译字符,除了用来表示引号,还有比如用
\\
表示字符串中的\
\n
表示字符串中的换行
\还有个用处,就是用来在代码中换行,而不影响输出的结果:
"this is the\ same line"
这个字符串仍然只有一行,和
"this is thesame line"
是一样的,只是在代码中换了行。当你要写一行很长的代码时,这个会派上用场。
python中还有一种表示字符串的方法:
三个引号(''')或者(""")
在三个引号中,你可以方便地使用单引号和双引号,并且可以直接换行
''' "What's your name?" I asked. "I'm Han Meimei." '''
把两段字符连起来输出
str1 = 'good' str2 = 'bye'
你可以
print(str1 + str2)
或者还可以把字符变量一个字符串相加
print('very' + str1) print(str1 + ' and ' + str2)
但如果你想要把一个数字加到文字后面输出,比如这样
num = 18 print('My age is' + num)
程序就会报错。因为字符和数字不能直接用+相加。
一种解决方法是,用str()把数字转换成字符串
print('My age is' + str(18))
或
num = 18 print('My age is' + str(num))
还有一种方法,就是用%对字符串进行格式化
num = 18 print('My age is %d' % num)
输出的时候,%d会被%后面的值替换。输出
My age is 18
这里,%d只能用来替换整数。如果你想格式化的数值是小数,要用%f
print('Price is %f' % 4.99)
输出
Price is 4.990000
如果你想保留两位小数,需要在f前面加上条件:%.2f
print('Price is %.2f' % 4.99)
输出
Price is 4.99
另外,可以用%s来替换一段字符串
name = 'Crossin' print('%s is a good teacher.' % name)
输出
Crossin is a good teacher.
或者
print('Today is %s.' % 'Friday' )
输出
Today is Friday.
注意区分:有引号的表示一段字符,没有引号的就是一个变量,这个变量可能是字符,也可能是数字,但一定要和%所表示的格式相一致。
现在,试试看用字符串格式化改进一下之前你写的小游戏。
比如你输了一个数字72,程序会回答你
72 is too small.
或者
Bingo, 72 is the right answer!
设想一样,如果我们要输出5个*,用for循环要这么写
for i in range(0, 5): print('*')
如果想让这5个*在同一行,python3需要加上end参数:
for i in range(0, 5): print('*', end=' ')
python2的话就在print语句后面加上逗号
for i in range(0, 5): print '*',
但如果我想要这样一个图形,怎么办?
* * * * * * * * * * * * * * * * * * * * * * * * *
当然,你可以循环5次,每次输出一行“* * * * *”。那如果再进一步,这样呢?
* ** *** **** *****
除了你自己动手打好一个多行字符串外,也可以让程序帮我们解决这种问题,我们需要的是两个嵌套在一起的循环:
for i in range(0, 5): for j in range(0, 5): print(i, j)
第二个for循环在第一个for循环的内部,表示每一次外层的循环中,都要进行一遍内层的循环。 看一下输出的结果:
0 0 0 1 0 2 0 3 0 4 1 0 ... 4 4
内层循环中的print语句一共被执行了25次。
i从0到4循环了5次。对应于每一个i的值,j又做了从0到4五次循环。所以5*5一共25次。
所以如果要输出一个5*5的方阵图案,我们可以
for i in range(0, 5): for j in range(0, 5): print('*', end=' ') print()
print后面没有写任何东西,是起到换行的作用,这样,每输出5个*,就会换行。
要输出第二个三角图案时,我们需要根据当前外层循环的序数,设置内层循环应当执行的次数。
for i in range(0, 5): for j in range(0, i+1): print('*', end=' ') print()
内层的j每次从0到i+1进行循环。
这样,当第一次i=0时,j就是range(0,1),只输出1个*。
而当最后一次i=4时,j就是range(0,5),输出5个*。
文件处理 使用文件的关键函数是 open() 函数。
open() 函数有两个参数:文件名和模式。
有四种打开文件的不同方法(模式):
此外,您可以指定文件是应该作为二进制还是文本模式进行处理。
语法 此外,您可以指定文件是应该作为二进制还是文本模式进行处理:
f = open("demofile.txt")
以上代码等同于:
f = open("demofile.txt", "rt")
因为 "r" (读取)和 "t" (文本)是默认值,所以不需要指定它们。
注释:请确保文件存在,否则您将收到错误消息。