• Moegirl.ICU:萌娘百科流亡社群 581077156(QQ),欢迎对萌娘百科运营感到失望的编辑者加入
  • Moegirl.ICU:账号认领正在试运行,有意者请参照账号认领流程

User:雾叶千奈/自学Python相关

萌娘百科,万物皆可萌的百科全书!转载请标注来源页面的网页链接,并声明引自萌娘百科。内容不可商用。
跳转到导航 跳转到搜索

其他

User:雾叶千奈/自学Python相关/为了实现想做的那个程序,在这里看看需要哪些代码呱

自学

2

print("要让程序打印出来的文本")

3

file -> new file

新建一个文件来写程序

run -> run module

保存并运行写好的程序

4

input(就放在那等用户输入字符串的框儿)

5

  a = 123

将变量「a」赋值为「123」

  name = 'Crossin'

字符串 - 表示一串字符,需要用''或""引起来

  myVar = 123

整数

  price = 5.99

浮点数 - 就是小数

  visible = True

bool(布尔) - 这个比较特殊,是用来表示逻辑“是”“非”的一种类型,它只有两个值,True和False。(注意这里没有引号,有了引号就变成字符串了)

6 bool

比较运算符/关系运算符

>

大于

<

小于

>=

大于等于

<=

小于等于

==

等于。比较两个值是否相等。之所以用两个等号,是为了和变量赋值区分开来。

!=

不等与

逻辑运算符

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」的变量

  • int是什么?
result = answer<num
print 'too small?'
print result

计算answer<num的结果,记录在result里,输出提示,再输出结果。

  • result是什么?
    • n.结果;成果;成绩;后果
    • v.(因…)发生;(随…)产生
    • 网络 效果;成效;结果如何
result = answer>num
print 'too big?'
print result
result = answer==num
print 'equal?'
print result

7 if

if
(tab或者四个空格,但是要统一)

工作方式

  • if→ture→做点什么→下一个任务
  • if→false→下一个任务

8 while

#这个井字括号之内的注释文字是会被系统跳过、不当成程序内容的#

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"

9 random

引入模块的方法:

from 模块名 import 方法名

看不懂没关系,这东西以后我们会反复用到。今天你只要记住,你想要产生一个随机的整数,就在程序的最开头写上:

from random import randint

之后你就可以用randint来产生随机数了。


randint的时候后面也要有()。而且,还要在括号中提供两个数字,先后分别是产生随机整数范围的下限和上限。例如:

randint(5, 10)

这样将会产生一个5到10之间(包括5和10)的随机整数。

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了。

11

一个逻辑表达式 代表了一个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,循环是要执行的。

12 for循环

另一种循环语句:

for ... in ...

同while一样,for循环可以用来重复做一件事情。

比如之前的一道习题:输出1到100

如果用for循环,则可以这么写:

for i in range(1, 101):
	print i

解释一下

  • range(1, 101)表示从1开始,到101为止(不包括101),取其中所有的整数。
  • for i in range(1, 101)就是说,把这些数,依次赋值给变量i。
  • 相当于一个一个循环过去,第一次i = 1,第二次i = 2,……,直到i = 100。当i = 101时跳出循环。

所以,当你需要一个循环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)
  • 从a循环至b-1

现在,你可以用for循环来改写习题903,904,905,906了。

13 字符串

字符串就是一组字符的序列(序列!又见序列!还记得我说过,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."
'''

14 字符串格式化

把两段字符连起来输出

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!

15 循环的嵌套

设想一样,如果我们要输出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的缩进和内层的for是一样的,这表明它是外层for循环中的语句,每次i的循环中,它会执行一次。

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个*。

16

.,

Python 参考手册

,,.

文件处理 使用文件的关键函数是 open() 函数。

open() 函数有两个参数:文件名和模式。

有四种打开文件的不同方法(模式):

  • "r" - 读取 - 默认值。打开文件进行读取,如果文件不存在则报错。
  • "a" - 追加 - 打开供追加的文件,如果不存在则创建该文件。
  • "w" - 写入 - 打开文件进行写入,如果文件不存在则创建该文件。
  • "x" - 创建 - 创建指定的文件,如果文件存在则返回错误。

此外,您可以指定文件是应该作为二进制还是文本模式进行处理。

  • "t" - 文本 - 默认值。文本模式。
  • "b" - 二进制 - 二进制模式(例如图像)。

语法 此外,您可以指定文件是应该作为二进制还是文本模式进行处理:

f = open("demofile.txt")

以上代码等同于:

f = open("demofile.txt", "rt")

因为 "r" (读取)和 "t" (文本)是默认值,所以不需要指定它们。

注释:请确保文件存在,否则您将收到错误消息。