Python tips
- input()、len()
因为 input()函数总是返回一个字符串(即使用户输入的是数字),所以使用 int(myAge)返回字符串的整型值。
这个整型值随后在表达式 int(myAge) + 1 中与 1 相加。
相加的结果传递给 str()函数:str(int(myAge) + 1)。然后,返回的字符串与字符串'You will be '和' in a year.'连接,求值为一个更长的字符串。
# This program says hello and asks for my name.
print('Hello world!')
print('What is your name?')
myName = input() # input()函数等待用户在键盘上输入一些文本,并按下回车键。将用户输入的文本即字符串赋值给变量myName
print('It is good to meet you,' + myName)
print('The length of your name is:')
print(len(myName)) # 向len()函数传递字符串或包含字符串的变量,求字符的个数,为一个整数
print('What is your age')
myAge = input()
print('You will be ' + str(int(myAge) + 1) + ' in a year.')
- if语句
print('input you name')
name=input()
print('input you name')
age=input()
if name == 'Alice':
print('Hi,Alice.')
elif int(age) < 12:
print('You are not Alice,Kiddo.')
elif int(age) > 200:
print('Unlike you,Alice is not an undead,immortal vampire.')
elif int(age) > 100:
print('You are not Alice,grannie.')
- random模块
import random
for i in range(5):
print(random.randint(1,10))
range()表示随机取值:0-4,不超过5的值。
random.randint()函数调用求值为传递给它的两个整数之间的一个随机整数;
因为 randint()属于 random 模块,必须在函数名称之前先加上 random.,告诉 python 在random 模块中寻找这个函数
#使用sys.exit()提前结束程序
import sys
while True:
print('Type exit to exit.')
response = input()
if response == 'exit':
sys.exit()
print('You typed ' + response + '.')
- def 定义函数
def 定义一个叫hello的函数,def 语句后的代码块为函数体。
在函数调用时执行,不是在函数第一次定义执行hello()为函数调用,就是函数名后跟括号,或在括号之间有一些参数。
执行到函数的末尾,就回到调用函数那行,继续向下执行代码。
def hello():
print('Howdy!')
print('Hoell')
print('Hello there.')
hello()
hello()
如果调用print()或len()函数,会传一些值,称为参数;
hello()函数定义,有一个为name()的变元(即变量,当函数被调用,参数就存放其中),保存在变元里的值,在函数返回后就丢失了。
如hello('Bob')之后添加 print(name),程序会报NameError,因为没有名为 name 的变量。
在函数调用 hello('Bob')返回后,这个变量被销毁了,所以 print(name)会引用一个不存在的变量 name。
这类似于程序结束时,程序中的变量会丢弃'''
def hello(name):
print('Hello ' + name)
hello('Alice')
hello('Bob')
r = random.randint(1, 9)
fortune = getAnswer(r)
print(fortune)
以上三行可以使用一行表示
print(getAnswer(random.randint(1, 9)))
在这个程序开始时,Python 首先导入 random 模块。然后 getAnswer()函数被定义。因为函数是被定义(而不是被调用),所以执行会跳过其中的代码。
接下来,random.randint()函数被调用,带两个参数,1 和 9。它求值为 1 和 9 之间的一个随机整数(包括 1 和 9),这个值被存在一个名为 r 的变量中。
getAnswer()函数被调用,以 r 作为参数。程序执行转移到 getAnswer()函数的顶部,r 的值被保存到名为 answerNumber 的变元中。
然后,根据 answerNumber中的值,函数返回许多可能字符串中的一个。程序执行返回到程序底部的代码行,即原来调用 getAnswer()的地方。
返回的字符串被赋给一个名为 fortune 变量,然后它又被传递给 print()调用,并被打印在屏幕上。
请注意,因为可以将返回值作为参数传递给另一个函数调用,所以你可以将下面 3 行代码
r = random.randint(1, 9)
fortune = getAnswer(r)
print(fortune)
缩写成一行等价的代码:
print(getAnswer(random.randint(1, 9)))
记住,表达式是值和操作符的组合。函数调用可以用在表达式中,因为它求值为它的返回值。'''
# 一般,函数调用求值的结果,称为函数的“返回值”
# return,用def语句创建函数时,可以用return语句指定应该返回什么值
import random
def getAnswer(answerNumber):
if answerNumber == 1:
return 'It is certain'
elif answerNumber == 2:
return 'It is decidedly so'
elif answerNumber == 3:
return 'Yes'
elif answerNumber == 4:
return 'Reply hazy try again'
elif answerNumber == 5:
return 'Ask again later'
elif answerNumber == 6:
return 'Concentrate and ask again'
elif answerNumber == 7:
return 'My reply is no'
elif answerNumber == 8:
return 'Outlook not so good'
elif answerNumber == 9:
return 'Very doubtful'
- try except
将可能出错的语句被放在 try 子句中。
如果错误发生,程序执行就转到接下来的except子句开始处。运行那些代码后执行照常继续'''
def spam(divideBY):
try:
return 42 / divideBY
except ZeroDivisionError:
print('Error: Invalid srgument.')
print(spam(2))
print(spam(12))
print(spam(0))
print(spam(1))
# 如果是以下场景
def spam(divideBY):
return 42 / divideBY
try:
print(spam(2))
print(spam(12))
print(spam(0))
print(spam(1))
except ZeroDivisionError:
print('Error: Invalid srgument.')
'''结果是:
21.0
3.5
Error: Invalid srgument.
>>>
'''
# print(spam(1))从未被执行是因为,一旦执行跳到except子句的代码,就不会回到try子句。它会继续照常向下执行。
- guessnumber game
# This is a guess the numner game.
import random
secretNumber = random.randint(1, 20)
print('I am thinking of number vetween 1 and 20.')
#Ask the player to guess 6 times.
for guessesTaken in range(1, 7):
print('Take a guess.')
guess = int(input())
if guess < secretNumber:
print('Your guess is too low.')
elif guess > secretNumber:
print('Your guess is too high.')
else:
break # this is condition is correct guess!
if guess == secretNumber:
print('Good job! You guessed my number in ' + str(guessesTaken) + ' guesses!')
else:
print('Nope. The number I was thinking of was ' + str(secretNumber))

浙公网安备 33010602011771号